We're updating the issue view to help you get more done. 

LP:998340 - Valgrind complains on simple selects containing expression DAY(FROM_UNIXTIME(-1))

Description

The following test case makes valgrind complain when running mariadb-5.1:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 SELECT SUBSTRING('1', DAY(FROM_UNIXTIME(-1))); SELECT LEFT('1', DAY(FROM_UNIXTIME(-1))); SELECT RIGHT('1', DAY(FROM_UNIXTIME(-1))); SELECT REPEAT('1', DAY(FROM_UNIXTIME(-1))); SELECT RPAD('hi', DAY(FROM_UNIXTIME(-1)),'?'); SELECT LPAD('hi', DAY(FROM_UNIXTIME(-1)),'?'); CREATE TABLE t1 SELECT SUBSTRING('1', DAY(FROM_UNIXTIME(-1))) AS f1, LEFT('1', DAY(FROM_UNIXTIME(-1))) AS f2, RIGHT('1', DAY(FROM_UNIXTIME(-1))) AS f3, REPEAT('1', DAY(FROM_UNIXTIME(-1))) AS f4, RPAD('hi', DAY(FROM_UNIXTIME(-1)),'?') AS f5, LPAD('hi', DAY(FROM_UNIXTIME(-1)),'?') AS f6; SHOW CREATE TABLE t1; DROP TABLE t1;

(see also bug##12634989 from mysql-trunk)

The complains are like this:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ==24162== Conditional jump or move depends on uninitialised value(s) ==24162== at 0x622A1A: Item_func_substr::fix_length_and_dec() (item_strfunc.cc:1273) ==24162== by 0x5EF4B7: Item_func::fix_fields(THD*, Item**) (item_func.cc:205) ==24162== by 0x61E3DA: Item_str_func::fix_fields(THD*, Item**) (item_strfunc.cc:67) ==24162== by 0x70BE1B: setup_fields(THD*, Item**, List<Item>&, enum_mark_columns, List<Item>*, bool) (sql_base.cc:7714) ==24162== by 0x71F07B: JOIN::prepare(Item***, TABLE_LIST*, unsigned int, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, st_select_lex*, st_select_lex_unit*) (sql_select.cc:530) ==24162== by 0x7268A7: 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:2545) ==24162== by 0x71E818: handle_select(THD*, st_lex*, select_result*, unsigned long) (sql_select.cc:280) ==24162== by 0x6BD119: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5241) ==24162== by 0x6B4232: mysql_execute_command(THD*) (sql_parse.cc:2380) ==24162== by 0x6BF845: mysql_parse(THD*, char*, unsigned int, char const**) (sql_parse.cc:6216) ==24162== by 0x6B1B30: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1294) ==24162== by 0x6B0AE0: do_command(THD*) (sql_parse.cc:906) ==24162== by 0x6AD563: handle_one_connection (sql_connect.cc:1208) ==24162== by 0x5D16A4E: start_thread (in /lib64/libpthread-2.11.2.so)

Most probably we have the same problem in other versions of MariaDB

Environment

None

Status

Assignee

Sergei Golubchik

Reporter

Igor Babaev

Labels

External issue ID

None

External issue ID

None

Fix versions

Affects versions

5.1.62
5.2.12

Priority

Trivial