Browse Source

Bug#40321 ha_myisam::info could update rec_per_key incorrectly

MyISAM did copy of key statistics incorrectly, which may cause
server crash or incorrect cardinality values. This may happen only on
platforms where size of long differs from size of pointer.
      
      To determine number of bytes to be copied from array of ulong,
MyISAM mistakenly used sizoef(pointer) instead of sizeof(ulong).
pull/47/merge
Anurag Shekhar 17 years ago
parent
commit
c55d8297d8
  1. 2
      storage/myisam/ha_myisam.cc

2
storage/myisam/ha_myisam.cc

@ -1753,7 +1753,7 @@ int ha_myisam::info(uint flag)
if (share->key_parts)
memcpy((char*) table->key_info[0].rec_per_key,
(char*) misam_info.rec_per_key,
sizeof(table->key_info[0].rec_per_key)*share->key_parts);
sizeof(table->key_info[0].rec_per_key[0])*share->key_parts);
if (share->tmp_table == NO_TMP_TABLE)
pthread_mutex_unlock(&share->mutex);

Loading…
Cancel
Save