Below is the list of changes that have just been committed into a local
5.1 repository of elkin. When elkin does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2006-11-30 19:56:34+02:00, aelkin@stripped +1 -0
Bug #24487 Valgrind: uninited byte in table->record[1] in binlog code for rbr + inno db
The reason of this valgrind's compaint is not a bug but rather a feature of bitwise ops:
for any value of the byte x
x | 1 -> 1, and x & 0 -> 0.
x, being a null_byte part of record[1] can be left unassigned even after
ha_innobase::index_read_idx because the above and still be correct.
Addding a check memory upon the invocation of the function can detect this fact
long before record[1], old record, is eventually passed to my_write.
Fixed with initialization of record[1]'s null_bytes part in open_table_from_share.
sql/table.cc@stripped, 2006-11-30 19:56:30+02:00, aelkin@stripped +1 -0
initialization of null-bytes for valgrind.
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: aelkin
# Host: dsl-hkibras-fe30f900-107.dhcp.inet.fi
# Root: /home/elkin/MySQL/MAIN/5.1-new
--- 1.257/sql/table.cc 2006-11-30 19:56:43 +02:00
+++ 1.258/sql/table.cc 2006-11-30 19:56:43 +02:00
@@ -1396,6 +1396,7 @@ int open_table_from_share(THD *thd, TABL
if (records > 1)
{
memcpy(outparam->record[0], share->default_values, share->rec_buff_length);
+ memcpy(outparam->record[1], share->default_values, share->null_bytes);
if (records > 2)
memcpy(outparam->record[1], share->default_values,
share->rec_buff_length);
| Thread |
|---|
| • bk commit into 5.1 tree (aelkin:1.2365) BUG#24487 | Andrei Elkin | 30 Nov |