List:Commits« Previous MessageNext Message »
From:marko.makela Date:June 14 2012 6:51am
Subject:bzr push into mysql-trunk-wl6255 branch (marko.makela:3977 to 3978) WL#6255
View as plain text  
 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#6255marko.makela14 Jun