mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Fix for BUG#14703 "Valgrind error when inserting 0 into a BIT column (like in type_bit.test)":
test "length" first (otherwise when "length" is 0, the *from invalid access still triggers a Valgrind warning). I wrote to the Valgrind authors in case this is something fixable in Valgrind (normally the decision to issue a warning is based on the simulated CPU condition code, which should not be undefined here).
This commit is contained in:
@@ -3,13 +3,13 @@
|
|||||||
path=`dirname $0`
|
path=`dirname $0`
|
||||||
. "$path/SETUP.sh"
|
. "$path/SETUP.sh"
|
||||||
|
|
||||||
extra_flags="$pentium64_cflags $debug_cflags -USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_purify -DMYSQL_SERVER_SUFFIX=-valgrind-max"
|
extra_flags="$pentium64_cflags $debug_cflags $max_cflags -USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_purify -DMYSQL_SERVER_SUFFIX=-valgrind-max"
|
||||||
c_warnings="$c_warnings $debug_extra_warnings"
|
c_warnings="$c_warnings $debug_extra_warnings"
|
||||||
cxx_warnings="$cxx_warnings $debug_extra_warnings"
|
cxx_warnings="$cxx_warnings $debug_extra_warnings"
|
||||||
extra_configs="$pentium_configs $debug_configs"
|
extra_configs="$pentium_configs $debug_configs"
|
||||||
|
|
||||||
# We want to test isam when building with valgrind
|
# We want to test isam when building with valgrind
|
||||||
extra_configs="$extra_configs --with-berkeley-db --with-innodb --with-isam --with-embedded-server --with-openssl --with-raid --with-ndbcluster"
|
extra_configs="$extra_configs $max_leave_isam_configs --with-isam"
|
||||||
|
|
||||||
. "$path/FINISH.sh"
|
. "$path/FINISH.sh"
|
||||||
|
|
||||||
|
@@ -14,6 +14,8 @@ create table t3 (a int);
|
|||||||
ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
|
ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
|
||||||
insert into t1 values(1);
|
insert into t1 values(1);
|
||||||
ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
|
ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
|
||||||
|
update t1 set a=1 where 1=0;
|
||||||
|
ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
|
||||||
update t1,t2 set t1.a=t2.a+1 where t1.a=t2.a;
|
update t1,t2 set t1.a=t2.a+1 where t1.a=t2.a;
|
||||||
ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
|
ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
|
||||||
delete t1,t2 from t1,t2 where t1.a=t2.a;
|
delete t1,t2 from t1,t2 where t1.a=t2.a;
|
||||||
|
@@ -7931,7 +7931,7 @@ int Field_bit::store(const char *from, uint length, CHARSET_INFO *cs)
|
|||||||
{
|
{
|
||||||
int delta;
|
int delta;
|
||||||
|
|
||||||
for (; !*from && length; from++, length--); // skip left 0's
|
for (; length && !*from; from++, length--); // skip left 0's
|
||||||
delta= field_length - length;
|
delta= field_length - length;
|
||||||
|
|
||||||
if (delta < -1 ||
|
if (delta < -1 ||
|
||||||
@@ -8151,7 +8151,7 @@ int Field_bit_as_char::store(const char *from, uint length, CHARSET_INFO *cs)
|
|||||||
int delta;
|
int delta;
|
||||||
uchar bits= create_length & 7;
|
uchar bits= create_length & 7;
|
||||||
|
|
||||||
for (; !*from && length; from++, length--); // skip left 0's
|
for (; length && !*from; from++, length--); // skip left 0's
|
||||||
delta= field_length - length;
|
delta= field_length - length;
|
||||||
|
|
||||||
if (delta < 0 ||
|
if (delta < 0 ||
|
||||||
|
Reference in New Issue
Block a user