[MDEV-4917] Valgrind warnings (Conditional jump or move depends on uninitialised value) in err_conv with dynamic columns Created: 2013-08-18  Updated: 2022-10-08  Resolved: 2022-10-08

Status: Closed
Project: MariaDB Server
Component/s: Dynamic Columns
Affects Version/s: 10.0.4
Fix Version/s: N/A

Type: Bug Priority: Minor
Reporter: Elena Stepanova Assignee: Oleksandr Byelkin
Resolution: Cannot Reproduce Votes: 0
Labels: None

Issue Links:
Relates

 Description   

CREATE TABLE t1 (dyncol TINYBLOB NOT NULL) ENGINE=MyISAM;
INSERT INTO t1 SET dyncol = COLUMN_CREATE( 4, 3, 3, REPEAT('a',290) );
SELECT COLUMN_GET( dyncol, 3 AS DATE ) FROM t1;

==9945== Conditional jump or move depends on uninitialised value(s)
==9945==    at 0x5F928B: err_conv(char*, unsigned int, char const*, unsigned int, charset_info_st const*) (sql_error.cc:775)
==9945==    by 0x5848F8: ErrConvString::ptr() const (sql_error.h:548)
==9945==    by 0x706E80: make_truncated_value_warning(THD*, MYSQL_ERROR::enum_warning_level, ErrConv const*, enum_mysql_timestamp_type, char const*) (sql_time.cc:853)
==9945==    by 0x705236: make_truncated_value_warning(THD*, MYSQL_ERROR::enum_warning_level, char const*, unsigned int, enum_mysql_timestamp_type, char const*) (sql_time.h:64)
==9945==    by 0x705C9F: str_to_datetime_with_warn(charset_info_st const*, char const*, unsigned int, st_mysql_time*, unsigned long long) (sql_time.cc:320)
==9945==    by 0x88F93F: Item_dyncol_get::get_date(st_mysql_time*, unsigned long long) (item_strfunc.cc:4729)
==9945==    by 0x8BD48A: Item_func::get_arg0_date(st_mysql_time*, unsigned long long) (item_func.h:157)
==9945==    by 0x8BB125: Item_date_typecast::get_date(st_mysql_time*, unsigned long long) (item_timefunc.cc:2432)
==9945==    by 0x81DB26: Item::send(Protocol*, String*) (item.cc:6394)
==9945==    by 0x579F8D: Protocol::send_result_set_row(List<Item>*) (protocol.cc:900)
==9945==    by 0x5E3BA4: select_send::send_data(List<Item>&) (sql_class.cc:2364)
==9945==    by 0x67E9DA: end_send(JOIN*, st_join_table*, bool) (sql_select.cc:17946)
==9945==    by 0x67B811: do_select(JOIN*, List<Item>*, TABLE*, Procedure*) (sql_select.cc:16464)
==9945==    by 0x65A775: JOIN::exec_inner() (sql_select.cc:2997)
==9945==    by 0x657A44: JOIN::exec() (sql_select.cc:2296)
==9945==    by 0x65B026: 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:3225)
==9945== Use of uninitialised value of size 8
==9945==    at 0xD75CD9: int2str (int2str.c:104)
==9945==    by 0xD7702B: process_int_arg (my_vsnprintf.c:287)
==9945==    by 0xD78C53: my_vsnprintf_ex (my_vsnprintf.c:655)
==9945==    by 0xD78FAE: my_vsnprintf (my_vsnprintf.c:706)
==9945==    by 0xD7905A: my_snprintf (my_vsnprintf.c:715)
==9945==    by 0x5F92EA: err_conv(char*, unsigned int, char const*, unsigned int, charset_info_st const*) (sql_error.cc:788)
==9945==    by 0x5848F8: ErrConvString::ptr() const (sql_error.h:548)
==9945==    by 0x706E80: make_truncated_value_warning(THD*, MYSQL_ERROR::enum_warning_level, ErrConv const*, enum_mysql_timestamp_type, char const*) (sql_time.cc:853)
==9945==    by 0x705236: make_truncated_value_warning(THD*, MYSQL_ERROR::enum_warning_level, char const*, unsigned int, enum_mysql_timestamp_type, char const*) (sql_time.h:64)
==9945==    by 0x705C9F: str_to_datetime_with_warn(charset_info_st const*, char const*, unsigned int, st_mysql_time*, unsigned long long) (sql_time.cc:320)
==9945==    by 0x88F93F: Item_dyncol_get::get_date(st_mysql_time*, unsigned long long) (item_strfunc.cc:4729)
==9945==    by 0x8BD48A: Item_func::get_arg0_date(st_mysql_time*, unsigned long long) (item_func.h:157)
==9945==    by 0x8BB125: Item_date_typecast::get_date(st_mysql_time*, unsigned long long) (item_timefunc.cc:2432)
==9945==    by 0x81DB26: Item::send(Protocol*, String*) (item.cc:6394)
==9945==    by 0x579F8D: Protocol::send_result_set_row(List<Item>*) (protocol.cc:900)
==9945==    by 0x5E3BA4: select_send::send_data(List<Item>&) (sql_class.cc:2364)
==9945== Conditional jump or move depends on uninitialised value(s)
==9945==    at 0xD75D40: int2str (int2str.c:107)
==9945==    by 0xD7702B: process_int_arg (my_vsnprintf.c:287)
==9945==    by 0xD78C53: my_vsnprintf_ex (my_vsnprintf.c:655)
==9945==    by 0xD78FAE: my_vsnprintf (my_vsnprintf.c:706)
==9945==    by 0xD7905A: my_snprintf (my_vsnprintf.c:715)
==9945==    by 0x5F92EA: err_conv(char*, unsigned int, char const*, unsigned int, charset_info_st const*) (sql_error.cc:788)
==9945==    by 0x5848F8: ErrConvString::ptr() const (sql_error.h:548)
==9945==    by 0x706E80: make_truncated_value_warning(THD*, MYSQL_ERROR::enum_warning_level, ErrConv const*, enum_mysql_timestamp_type, char const*) (sql_time.cc:853)
==9945==    by 0x705236: make_truncated_value_warning(THD*, MYSQL_ERROR::enum_warning_level, char const*, unsigned int, enum_mysql_timestamp_type, char const*) (sql_time.h:64)
==9945==    by 0x705C9F: str_to_datetime_with_warn(charset_info_st const*, char const*, unsigned int, st_mysql_time*, unsigned long long) (sql_time.cc:320)
==9945==    by 0x88F93F: Item_dyncol_get::get_date(st_mysql_time*, unsigned long long) (item_strfunc.cc:4729)
==9945==    by 0x8BD48A: Item_func::get_arg0_date(st_mysql_time*, unsigned long long) (item_func.h:157)
==9945==    by 0x8BB125: Item_date_typecast::get_date(st_mysql_time*, unsigned long long) (item_timefunc.cc:2432)
==9945==    by 0x81DB26: Item::send(Protocol*, String*) (item.cc:6394)
==9945==    by 0x579F8D: Protocol::send_result_set_row(List<Item>*) (protocol.cc:900)
==9945==    by 0x5E3BA4: select_send::send_data(List<Item>&) (sql_class.cc:2364)

bzr version-info

revision-id: knielsen@knielsen-hq.org-20130816131025-etjrvmfvupsjzq83
revno: 3674
branch-nick: 10.0-base

Built with BUILD/compile-pentium-valgrind-max-no-ndb

Also reproducible on the current 10.0 tree. Could not reproduce on 5.5.

It might turn out to be a duplicate of some other valgrind warnings filed recently, but I haven't had this stack trace yet, so submitting it to be on the safe side.



 Comments   
Comment by Elena Stepanova [ 2022-10-08 ]

Can't reproduce on current versions or even on 10.0.40. There were similar bugs fixed in 10.0.

Generated at Thu Feb 08 07:00:13 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.