diff options
author | unknown <tomas@poseidon.ndb.mysql.com> | 2006-05-08 18:09:01 +0200 |
---|---|---|
committer | unknown <tomas@poseidon.ndb.mysql.com> | 2006-05-08 18:09:01 +0200 |
commit | 94c6f6dc4888166b3677f38b534502156ef50d49 (patch) | |
tree | a417c16badf812bf41b9f6b6538ae18d04dc82f6 | |
parent | 2f0b9ce9aa5673c4692d1b4cd8fbe3f3bcd56798 (diff) | |
download | mariadb-git-94c6f6dc4888166b3677f38b534502156ef50d49.tar.gz |
Bug #19572 Memory leaks in cluster when running make test
-rw-r--r-- | sql/ha_ndbcluster.cc | 5 | ||||
-rw-r--r-- | sql/ha_ndbcluster_binlog.cc | 8 |
2 files changed, 10 insertions, 3 deletions
diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index b84350fd3b8..89b9ed93d69 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -4431,8 +4431,11 @@ int ha_ndbcluster::create(const char *name, if (readfrm(name, &data, &length)) DBUG_RETURN(1); if (packfrm(data, length, &pack_data, &pack_length)) + { + my_free((char*)data, MYF(0)); DBUG_RETURN(2); - + } + DBUG_PRINT("info", ("setFrm data=%lx len=%d", pack_data, pack_length)); tab.setFrm(pack_data, pack_length); my_free((char*)data, MYF(0)); diff --git a/sql/ha_ndbcluster_binlog.cc b/sql/ha_ndbcluster_binlog.cc index 922380f47f9..a125fd5e722 100644 --- a/sql/ha_ndbcluster_binlog.cc +++ b/sql/ha_ndbcluster_binlog.cc @@ -255,7 +255,7 @@ ndbcluster_binlog_close_table(THD *thd, NDB_SHARE *share) DBUG_ENTER("ndbcluster_binlog_close_table"); if (share->table_share) { - free_table_share(share->table_share); + closefrm(share->table, 1); share->table_share= 0; share->table= 0; } @@ -1458,7 +1458,7 @@ ndb_handle_schema_change(THD *thd, Ndb *ndb, NdbEventOperation *pOp, { DBUG_ENTER("ndb_handle_schema_change"); TABLE* table= share->table; - TABLE_SHARE *table_share= table->s; + TABLE_SHARE *table_share= share->table_share; const char *dbname= table_share->db.str; const char *tabname= table_share->table_name.str; bool do_close_cached_tables= FALSE; @@ -1527,6 +1527,8 @@ ndb_handle_schema_change(THD *thd, Ndb *ndb, NdbEventOperation *pOp, old->getObjectVersion() != altered_table->getObjectVersion()) dict->putTable(altered_table); + my_free((char*)data, MYF(MY_ALLOW_ZERO_PTR)); + data= NULL; if ((error= unpackfrm(&data, &length, altered_table->getFrmData())) || (error= writefrm(key, data, length))) { @@ -1547,6 +1549,8 @@ ndb_handle_schema_change(THD *thd, Ndb *ndb, NdbEventOperation *pOp, dbname, tabname); pthread_mutex_unlock(&LOCK_open); } + my_free((char*)data, MYF(MY_ALLOW_ZERO_PTR)); + my_free((char*)pack_data, MYF(MY_ALLOW_ZERO_PTR)); } // If only frm was changed continue replicating |