mirror of
https://github.com/MariaDB/server.git
synced 2025-12-15 08:21:24 +03:00
Port r225 from branches/5.0:
Fix memory allocation bug (by changing MY_WME to MY_FAE) in ha_innodb.cc:get_share.
This commit is contained in:
@@ -6787,23 +6787,24 @@ static INNOBASE_SHARE* get_share(const char* table_name)
|
|||||||
if (!(share=(INNOBASE_SHARE*) hash_search(&innobase_open_tables,
|
if (!(share=(INNOBASE_SHARE*) hash_search(&innobase_open_tables,
|
||||||
(mysql_byte*) table_name,
|
(mysql_byte*) table_name,
|
||||||
length))) {
|
length))) {
|
||||||
if ((share=(INNOBASE_SHARE *) my_malloc(sizeof(*share)+length+1,
|
|
||||||
MYF(MY_WME | MY_ZEROFILL)))) {
|
|
||||||
share->table_name_length=length;
|
|
||||||
share->table_name=(char*) (share+1);
|
|
||||||
strmov(share->table_name,table_name);
|
|
||||||
|
|
||||||
if (my_hash_insert(&innobase_open_tables,
|
share = (INNOBASE_SHARE *) my_malloc(sizeof(*share)+length+1,
|
||||||
(mysql_byte*) share)) {
|
MYF(MY_FAE | MY_ZEROFILL));
|
||||||
pthread_mutex_unlock(&innobase_share_mutex);
|
|
||||||
my_free((gptr) share,0);
|
share->table_name_length=length;
|
||||||
|
share->table_name=(char*) (share+1);
|
||||||
|
strmov(share->table_name,table_name);
|
||||||
|
|
||||||
return 0;
|
if (my_hash_insert(&innobase_open_tables,
|
||||||
}
|
(mysql_byte*) share)) {
|
||||||
|
pthread_mutex_unlock(&innobase_share_mutex);
|
||||||
|
my_free((gptr) share,0);
|
||||||
|
|
||||||
thr_lock_init(&share->lock);
|
return 0;
|
||||||
pthread_mutex_init(&share->mutex,MY_MUTEX_INIT_FAST);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
thr_lock_init(&share->lock);
|
||||||
|
pthread_mutex_init(&share->mutex,MY_MUTEX_INIT_FAST);
|
||||||
}
|
}
|
||||||
|
|
||||||
share->use_count++;
|
share->use_count++;
|
||||||
|
|||||||
Reference in New Issue
Block a user