mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
60a66c451a
Valgrind warning happpens because of uninitialized null bytes. In row_sel_push_cache_row_for_mysql() function we fill fetch cache with necessary field values, row_sel_store_mysql_rec() is called for this and leaves null bytes untouched. Later row_sel_pop_cached_row_for_mysql() rewrites table record buffer with uninited null bytes. We can see the problem from the test case: At 'SELECT...' we call row_sel_push...->row_sel_store...->row_sel_pop_cached... chain which rewrites table->record[0] buffer with uninitialized null bytes. When we call 'UPDATE...' statement, compare_record uses this buffer and valgrind warning occurs. The fix is to init null bytes with default values. mysql-test/suite/innodb/r/innodb_mysql.result: test case mysql-test/suite/innodb/t/innodb_mysql.test: test case mysql-test/t/ps_3innodb.test: enable valgrind testing storage/innobase/row/row0sel.c: init null bytes with default values as they might be left uninitialized in some cases and these uninited bytes might be copied into mysql record buffer that leads to valgrind warnings on next use of the buffer.
26 lines
638 B
Text
26 lines
638 B
Text
###############################################
|
|
# #
|
|
# Prepared Statements test on InnoDB tables #
|
|
# #
|
|
###############################################
|
|
|
|
#
|
|
# NOTE: PLEASE SEE ps_1general.test (bottom)
|
|
# BEFORE ADDING NEW TEST CASES HERE !!!
|
|
|
|
use test;
|
|
|
|
-- source include/have_innodb.inc
|
|
|
|
let $type= 'InnoDB' ;
|
|
-- source include/ps_create.inc
|
|
-- source include/ps_renew.inc
|
|
|
|
-- source include/ps_query.inc
|
|
-- source include/ps_modify.inc
|
|
-- source include/ps_modify1.inc
|
|
-- source include/ps_conv.inc
|
|
|
|
drop table t1, t9;
|
|
|
|
# End of 4.1 tests
|