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:
None 
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 17:53] Shane Bester
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'));
[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.