| Bug #57533 | uninitialised values in copy_and_convert (sql_string.cc) with certain charsets | ||
|---|---|---|---|
| Submitted: | 18 Oct 2010 17:53 | Modified: | 24 Dec 2012 10:00 |
| Reporter: | Shane Bester (Platinum Quality Contributor) | Email Updates: | |
| Status: | Duplicate | Impact on me: | |
| Category: | MySQL Server: Data Types | Severity: | S3 (Non-critical) |
| Version: | 5.0.92, 5.1.53, 5.5.8 | OS: | Linux (FC13 x64) |
| Assigned to: | CPU Architecture: | Any | |
[18 Oct 2010 20:40]
MySQL Verification Team
I couldn't repeat on Ubuntu 10.10 X86_64. I got different warnings.
[21 Oct 2010 10:41]
Sveta Smirnova
Thank you for the report. I can not repeat described behavior too. Please provide configure options you used and version of valgrind.
[24 Oct 2010 10:34]
MySQL Verification Team
ok folks, here is the full story!
[sbester@levovo mysql-5.5-security]$ bzr revno
3124
Built using:
./BUILD/compile-pentium-valgrind-max-no-ndb
Run in valgrind like 'how to repeat'. Then, run this SQL.
I had 5.5 windows client who does a stupid set names...
set names cp850;
select round(least(15,-4939092,0.2704),stddev('a'));
[24 Dec 2012 10:00]
Erlend Dahl
Fixed as a duplicate of bug#58937.

Description: 5.5.8-debug valgrind output: Conditional jump or move depends on uninitialised value(s) at: copy_and_convert (sql_string.cc:836) by: Protocol::net_store_data (protocol.cc:114) by: Protocol::store_string_aux (protocol.cc:958) by: Protocol_text::store (protocol.cc:998) by: Item::send (item.cc:5832) by: Protocol::send_result_set_row (protocol.cc:848) by: select_send::send_data (sql_class.cc:1789) by: end_send_group (sql_select.cc:12680) by: do_select (sql_select.cc:11402) by: JOIN::exec (sql_select.cc:2359) by: mysql_select (sql_select.cc:2568) by: handle_select (sql_select.cc:296) by: execute_sqlcom_select (sql_parse.cc:4464) by: mysql_execute_command (sql_parse.cc:2066) by: mysql_parse (sql_parse.cc:5500) by: dispatch_command (sql_parse.cc:1030) by: do_command (sql_parse.cc:770) by: do_handle_one_connection (sql_connect.cc:745) by: handle_one_connection (sql_connect.cc:684) by: start_thread (pthread_create.c:301) 5.1 has one valgrind warning, 5.5 has two so affects bother versions slightly differently How to repeat: #run mysqld in valgrind #valgrind -v --leak-check=full --show-reachable=yes --db-attach=yes --track-origins=no --tool=memcheck --num-callers=50 ./bin/mysqld --no-defaults --basedir=. --datadir=./data --skip-gr --skip-na --myisam-recover=force Then, select round(least(15,-4939092,0.2704),stddev('a'));