Bug #59145 | valgrind warnings for uninitialized values in my_strtoll10_mb2 | ||
---|---|---|---|
Submitted: | 24 Dec 2010 6:14 | Modified: | 18 Jan 2011 19:55 |
Reporter: | Shane Bester (Platinum Quality Contributor) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Charsets | Severity: | S3 (Non-critical) |
Version: | 5.6.1, 5.6.2 | OS: | Any |
Assigned to: | Alexander Barkov | CPU Architecture: | Any |
Tags: | regression, valgrind |
[24 Dec 2010 6:14]
Shane Bester
[24 Dec 2010 6:14]
MySQL Verification Team
more details...
Attachment: bug59145_more_info.txt (text/plain), 21.04 KiB.
[24 Dec 2010 10:07]
Valeriy Kravchuk
Verified just as described with current mysql-trunk tree on 32-bit Ubunut 10.04: ==15900== Conditional jump or move depends on uninitialised value(s) ==15900== at 0x875CAB1: my_strtoll10_mb2 (ctype-ucs2.c:796) ==15900== by 0x83D2775: Item_func_signed::val_int_from_str(int*) (item_func.cc:971) ==15900== by 0x83D2B44: Item_func_unsigned::val_int() (item_func.cc:1039) ==15900== by 0x8396AD2: Item::send(Protocol*, String*) (item.cc:5968) ==15900== by 0x8198224: Protocol::send_result_set_row(List<Item>*) (protocol.cc:848) ==15900== by 0x81E3D2B: select_send::send_data(List<Item>&) (sql_class.cc:1866) ==15900== by 0x823EA46: JOIN::exec() (sql_select.cc:2794) ==15900== by 0x824116A: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:3554) ==15900== by 0x823860B: handle_select(THD*, LEX*, select_result*, unsigned long) (sql_select.cc:323) ==15900== by 0x821AB70: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:4513) ==15900== by 0x8212E61: mysql_execute_command(THD*) (sql_parse.cc:2096) ==15900== by 0x821CBEB: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5550)
[24 Dec 2010 13:25]
MySQL Verification Team
another testcase (note: DO is needed instead of SELECT) do ifnull(char(timestampdiff(day,'q','') using ucs2),''); Conditional jump or move depends on uninitialised value(s) at: my_strtoll10_mb2 (ctype-ucs2.c:748) by: Item_func_numhybrid::val_int (item_func.cc:890) by: mysql_do (sql_do.cc:34) by: mysql_execute_command (sql_parse.cc:2119) by: mysql_parse (sql_parse.cc:5550) by: dispatch_command (sql_parse.cc:1078) by: do_command (sql_parse.cc:815) by: do_handle_one_connection (sql_connect.cc:748) by: handle_one_connection (sql_connect.cc:684) by: start_thread (pthread_create.c:301) Uninitialised value was created by a stack allocation at: my_strtoll10_mb2 (ctype-ucs2.c:714)
[24 Dec 2010 13:27]
MySQL Verification Team
do ifnull(char(null using ucs2),'');
[26 Dec 2010 8:40]
MySQL Verification Team
do cast(convert('' using ucs2) as unsigned)
[13 Jan 2011 15:59]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/128670 3502 Alexander Barkov 2011-01-13 Bug#59145 valgrind warnings for uninitialized values in my_strtoll10_mb2 @ mysql-test/r/ctype_ucs.result Adding test @ mysql-test/t/ctype_ucs.test Adding test @ strings/ctype-ucs2.c "wc" was not initialized in case of empty string. - Removing redundant loop condition in for - on end-of-string the loop will break by "goto". - Making "goto" condition stricter (just in case)
[18 Jan 2011 7:20]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/129025 3526 Alexander Barkov 2011-01-18 Bug#59145 valgrind warnings for uninitialized values in my_strtoll10_mb2 @ mysql-test/r/ctype_ucs.result Adding test @ mysql-test/t/ctype_ucs.test Adding test @ strings/ctype-ucs2.c "wc" was not initialized in case of empty string. - Removing redundant loop condition in for - on end-of-string the loop will break by "goto". - Making "goto" condition stricter (just in case)
[18 Jan 2011 7:21]
Bugs System
Pushed into mysql-trunk 5.6.2 (revid:alexander.barkov@oracle.com-20110118071649-6ayyh3xrhkjeswle) (version source revid:alexander.barkov@oracle.com-20110118071649-6ayyh3xrhkjeswle) (merge vers: 5.6.2) (pib:24)
[18 Jan 2011 19:55]
Paul DuBois
Noted in 5.6.2 changelog. Valgrind warnings about uninitialized variables were corrected.
[21 Jan 2011 7:53]
MySQL Verification Team
now bug #59648 hits this assertion