3978 Marko Mäkelä 2012-06-14
WL#6255 rb:1105 Problem 25 (memory corruption) fix.
row_ins_sec_index_entry_low(): Pass offsets_heap to the B-tree functions.
Otherwise, the dtuple_t* entry could be freed and overwritten in
btr_page_split_and_insert(), which invokes mem_heap_empty().
modified:
storage/innobase/row/row0ins.cc
3977 Marko Mäkelä 2012-06-13
WL#5526 rb:1105 Problem 24 fix.
innobase_rec_to_mysql(): If col_map[] maps a column outside 0..n_fields-1,
skip the column.
modified:
storage/innobase/handler/handler0alter.cc
=== modified file 'storage/innobase/row/row0ins.cc'
--- a/storage/innobase/row/row0ins.cc revid:marko.makela@stripped02244-rdsekkh29iduvlwz
+++ b/storage/innobase/row/row0ins.cc revid:marko.makela@strippedldecpmtt
@@ -2481,7 +2481,7 @@ row_ins_sec_index_entry_low(
existing record */
offsets = rec_get_offsets(
btr_cur_get_rec(&cursor), index, offsets,
- ULINT_UNDEFINED, &heap);
+ ULINT_UNDEFINED, &offsets_heap);
err = row_ins_sec_index_entry_by_modify(
flags, mode, &cursor, &offsets,
@@ -2492,7 +2492,7 @@ row_ins_sec_index_entry_low(
if (mode == BTR_MODIFY_LEAF) {
err = btr_cur_optimistic_insert(
- flags, &cursor, &offsets, &heap,
+ flags, &cursor, &offsets, &offsets_heap,
entry, &insert_rec,
&big_rec, 0, thr, &mtr);
} else {
@@ -2502,7 +2502,8 @@ row_ins_sec_index_entry_low(
err = DB_LOCK_TABLE_FULL;
} else {
err = btr_cur_pessimistic_insert(
- flags, &cursor, &offsets, &heap,
+ flags, &cursor,
+ &offsets, &offsets_heap,
entry, &insert_rec,
&big_rec, 0, thr, &mtr);
}
No bundle (reason: useless for push emails).| Thread |
|---|
| • bzr push into mysql-trunk-wl6255 branch (marko.makela:3977 to 3978) WL#6255 | marko.makela | 14 Jun |