Details
-
Bug
-
Status: Confirmed (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.1, 10.2, 10.3, 10.4, 10.5, 10.6
-
None
Description
--source include/have_innodb.inc
|
|
CREATE TABLE t1 (a INT) ENGINE=InnoDB; |
INSERT INTO t1 VALUES (1),(2); |
SELECT COUNT(*) FROM t1 ORDER BY MAKE_SET('1974-05-06', b'1', CONVERT(0.0, CHAR(6)), 1); |
|
# Cleanup
|
DROP TABLE t1; |
10.4 ASAN 5a796f1f |
==28679==ERROR: AddressSanitizer: heap-use-after-free on address 0x60c0000453b0 at pc 0x555c3f2a6277 bp 0x7f4a2687e9c0 sp 0x7f4a2687e9b8
|
READ of size 3 at 0x60c0000453b0 thread T27
|
#0 0x555c3f2a6276 in Binary_string::copy(Binary_string const&) /data/src/10.4/sql/sql_string.cc:230
|
#1 0x555c3efc948d in String::copy(String const&) /data/src/10.4/sql/sql_string.h:816
|
#2 0x555c3fa0f418 in Item_func_make_set::val_str(String*) /data/src/10.4/sql/item_strfunc.cc:2851
|
#3 0x555c3f8ad3a4 in Item_copy_string::copy() /data/src/10.4/sql/item.cc:4777
|
#4 0x555c3f1f24e4 in copy_fields(TMP_TABLE_PARAM*) /data/src/10.4/sql/sql_select.cc:24614
|
#5 0x555c3f1dc9c7 in end_send_group(JOIN*, st_join_table*, bool) /data/src/10.4/sql/sql_select.cc:21411
|
#6 0x555c3f1d2dff in evaluate_join_record /data/src/10.4/sql/sql_select.cc:20238
|
#7 0x555c3f1d19d9 in sub_select(JOIN*, st_join_table*, bool) /data/src/10.4/sql/sql_select.cc:20018
|
#8 0x555c3f1cfce4 in do_select /data/src/10.4/sql/sql_select.cc:19556
|
#9 0x555c3f168f6c in JOIN::exec_inner() /data/src/10.4/sql/sql_select.cc:4371
|
#10 0x555c3f166867 in JOIN::exec() /data/src/10.4/sql/sql_select.cc:4153
|
#11 0x555c3f16a344 in mysql_select(THD*, 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*) /data/src/10.4/sql/sql_select.cc:4585
|
#12 0x555c3f14092a in handle_select(THD*, LEX*, select_result*, unsigned long) /data/src/10.4/sql/sql_select.cc:424
|
#13 0x555c3f0c16e7 in execute_sqlcom_select /data/src/10.4/sql/sql_parse.cc:6651
|
#14 0x555c3f0ae2ae in mysql_execute_command(THD*) /data/src/10.4/sql/sql_parse.cc:3888
|
#15 0x555c3f0c9f8a in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/src/10.4/sql/sql_parse.cc:8204
|
#16 0x555c3f0a1f07 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/src/10.4/sql/sql_parse.cc:1829
|
#17 0x555c3f09ed58 in do_command(THD*) /data/src/10.4/sql/sql_parse.cc:1358
|
#18 0x555c3f432921 in do_handle_one_connection(CONNECT*) /data/src/10.4/sql/sql_connect.cc:1399
|
#19 0x555c3f43231a in handle_one_connection /data/src/10.4/sql/sql_connect.cc:1302
|
#20 0x555c3fff9888 in pfs_spawn_thread /data/src/10.4/storage/perfschema/pfs.cc:1862
|
#21 0x7f4a32258493 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7493)
|
#22 0x7f4a3063e93e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xe893e)
|
|
0x60c0000453b0 is located 112 bytes inside of 124-byte region [0x60c000045340,0x60c0000453bc)
|
freed by thread T27 here:
|
#0 0x7f4a324c2527 in __interceptor_free (/usr/lib/x86_64-linux-gnu/libasan.so.1+0x54527)
|
#1 0x555c409aaa69 in free_memory /data/src/10.4/mysys/safemalloc.c:279
|
#2 0x555c409aa06f in sf_free /data/src/10.4/mysys/safemalloc.c:197
|
#3 0x555c4097aab8 in my_free /data/src/10.4/mysys/my_malloc.c:222
|
#4 0x555c3ee0cce7 in Binary_string::free() /data/src/10.4/sql/sql_string.h:604
|
#5 0x555c3f2a4eaa in Binary_string::real_alloc(unsigned long) /data/src/10.4/sql/sql_string.cc:43
|
#6 0x555c3ee2cb29 in Binary_string::alloc(unsigned long) /data/src/10.4/sql/sql_string.h:613
|
#7 0x555c3f2a56ea in String::set_int(long long, bool, charset_info_st const*) /data/src/10.4/sql/sql_string.cc:126
|
#8 0x555c3f8a34b3 in Item_int::val_str(String*) /data/src/10.4/sql/item.cc:3465
|
#9 0x555c3fa0f2df in Item_func_make_set::val_str(String*) /data/src/10.4/sql/item_strfunc.cc:2831
|
#10 0x555c3f8ad3a4 in Item_copy_string::copy() /data/src/10.4/sql/item.cc:4777
|
#11 0x555c3f1f24e4 in copy_fields(TMP_TABLE_PARAM*) /data/src/10.4/sql/sql_select.cc:24614
|
#12 0x555c3f1dc9c7 in end_send_group(JOIN*, st_join_table*, bool) /data/src/10.4/sql/sql_select.cc:21411
|
#13 0x555c3f1d2dff in evaluate_join_record /data/src/10.4/sql/sql_select.cc:20238
|
#14 0x555c3f1d19d9 in sub_select(JOIN*, st_join_table*, bool) /data/src/10.4/sql/sql_select.cc:20018
|
#15 0x555c3f1cfce4 in do_select /data/src/10.4/sql/sql_select.cc:19556
|
#16 0x555c3f168f6c in JOIN::exec_inner() /data/src/10.4/sql/sql_select.cc:4371
|
#17 0x555c3f166867 in JOIN::exec() /data/src/10.4/sql/sql_select.cc:4153
|
#18 0x555c3f16a344 in mysql_select(THD*, 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*) /data/src/10.4/sql/sql_select.cc:4585
|
#19 0x555c3f14092a in handle_select(THD*, LEX*, select_result*, unsigned long) /data/src/10.4/sql/sql_select.cc:424
|
#20 0x555c3f0c16e7 in execute_sqlcom_select /data/src/10.4/sql/sql_parse.cc:6651
|
#21 0x555c3f0ae2ae in mysql_execute_command(THD*) /data/src/10.4/sql/sql_parse.cc:3888
|
#22 0x555c3f0c9f8a in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/src/10.4/sql/sql_parse.cc:8204
|
#23 0x555c3f0a1f07 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/src/10.4/sql/sql_parse.cc:1829
|
#24 0x555c3f09ed58 in do_command(THD*) /data/src/10.4/sql/sql_parse.cc:1358
|
#25 0x555c3f432921 in do_handle_one_connection(CONNECT*) /data/src/10.4/sql/sql_connect.cc:1399
|
#26 0x555c3f43231a in handle_one_connection /data/src/10.4/sql/sql_connect.cc:1302
|
#27 0x555c3fff9888 in pfs_spawn_thread /data/src/10.4/storage/perfschema/pfs.cc:1862
|
#28 0x7f4a32258493 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7493)
|
|
previously allocated by thread T27 here:
|
#0 0x7f4a324c273f in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.1+0x5473f)
|
#1 0x555c409a97df in sf_malloc /data/src/10.4/mysys/safemalloc.c:118
|
#2 0x555c4097a0da in my_malloc /data/src/10.4/mysys/my_malloc.c:101
|
#3 0x555c3f2a4f09 in Binary_string::real_alloc(unsigned long) /data/src/10.4/sql/sql_string.cc:46
|
#4 0x555c3ee2cb29 in Binary_string::alloc(unsigned long) /data/src/10.4/sql/sql_string.h:613
|
#5 0x555c3fb9bac1 in my_decimal::to_string_native(String*, unsigned int, unsigned int, char, unsigned int) const /data/src/10.4/sql/my_decimal.cc:118
|
#6 0x555c3ee2de0e in my_decimal::to_string(String*, unsigned int, unsigned int, char) const /data/src/10.4/sql/my_decimal.h:204
|
#7 0x555c3ee2de4f in my_decimal::to_string(String*) const /data/src/10.4/sql/my_decimal.h:208
|
#8 0x555c3f8e0213 in Item_decimal::val_str(String*) /data/src/10.4/sql/item.h:4163
|
#9 0x555c3fabb312 in Item_char_typecast::val_str(String*) /data/src/10.4/sql/item_timefunc.cc:2338
|
#10 0x555c3fa0f2df in Item_func_make_set::val_str(String*) /data/src/10.4/sql/item_strfunc.cc:2831
|
#11 0x555c3f8ad3a4 in Item_copy_string::copy() /data/src/10.4/sql/item.cc:4777
|
#12 0x555c3f1f24e4 in copy_fields(TMP_TABLE_PARAM*) /data/src/10.4/sql/sql_select.cc:24614
|
#13 0x555c3f1dc9c7 in end_send_group(JOIN*, st_join_table*, bool) /data/src/10.4/sql/sql_select.cc:21411
|
#14 0x555c3f1d2dff in evaluate_join_record /data/src/10.4/sql/sql_select.cc:20238
|
#15 0x555c3f1d19d9 in sub_select(JOIN*, st_join_table*, bool) /data/src/10.4/sql/sql_select.cc:20018
|
#16 0x555c3f1cfce4 in do_select /data/src/10.4/sql/sql_select.cc:19556
|
#17 0x555c3f168f6c in JOIN::exec_inner() /data/src/10.4/sql/sql_select.cc:4371
|
#18 0x555c3f166867 in JOIN::exec() /data/src/10.4/sql/sql_select.cc:4153
|
#19 0x555c3f16a344 in mysql_select(THD*, 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*) /data/src/10.4/sql/sql_select.cc:4585
|
#20 0x555c3f14092a in handle_select(THD*, LEX*, select_result*, unsigned long) /data/src/10.4/sql/sql_select.cc:424
|
#21 0x555c3f0c16e7 in execute_sqlcom_select /data/src/10.4/sql/sql_parse.cc:6651
|
#22 0x555c3f0ae2ae in mysql_execute_command(THD*) /data/src/10.4/sql/sql_parse.cc:3888
|
#23 0x555c3f0c9f8a in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/src/10.4/sql/sql_parse.cc:8204
|
#24 0x555c3f0a1f07 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/src/10.4/sql/sql_parse.cc:1829
|
#25 0x555c3f09ed58 in do_command(THD*) /data/src/10.4/sql/sql_parse.cc:1358
|
#26 0x555c3f432921 in do_handle_one_connection(CONNECT*) /data/src/10.4/sql/sql_connect.cc:1399
|
#27 0x555c3f43231a in handle_one_connection /data/src/10.4/sql/sql_connect.cc:1302
|
#28 0x555c3fff9888 in pfs_spawn_thread /data/src/10.4/storage/perfschema/pfs.cc:1862
|
#29 0x7f4a32258493 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7493)
|
|
Thread T27 created by T0 here:
|
#0 0x7f4a32491bba in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.1+0x23bba)
|
#1 0x555c3fff9e50 in spawn_thread_v1 /data/src/10.4/storage/perfschema/pfs.cc:1912
|
#2 0x555c3edea476 in inline_mysql_thread_create /data/src/10.4/include/mysql/psi/mysql_thread.h:1268
|
#3 0x555c3edff6ed in create_thread_to_handle_connection(CONNECT*) /data/src/10.4/sql/mysqld.cc:6141
|
#4 0x555c3edffdf2 in create_new_thread(CONNECT*) /data/src/10.4/sql/mysqld.cc:6211
|
#5 0x555c3ee00182 in handle_accepted_socket(st_mysql_socket, st_mysql_socket) /data/src/10.4/sql/mysqld.cc:6309
|
#6 0x555c3ee00dce in handle_connections_sockets() /data/src/10.4/sql/mysqld.cc:6467
|
#7 0x555c3edfef28 in mysqld_main(int, char**) /data/src/10.4/sql/mysqld.cc:5799
|
#8 0x555c3ede82ff in main /data/src/10.4/sql/main.cc:25
|
#9 0x7f4a305762b0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202b0)
|
|
SUMMARY: AddressSanitizer: heap-use-after-free /data/src/10.4/sql/sql_string.cc:230 Binary_string::copy(Binary_string const&)
|
Shadow bytes around the buggy address:
|
0x0c1880000a20: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
|
0x0c1880000a30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
|
0x0c1880000a40: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
|
0x0c1880000a50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04
|
0x0c1880000a60: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
|
=>0x0c1880000a70: fd fd fd fd fd fd[fd]fd fa fa fa fa fa fa fa fa
|
0x0c1880000a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04
|
0x0c1880000a90: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
|
0x0c1880000aa0: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa
|
0x0c1880000ab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04
|
0x0c1880000ac0: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
|
Shadow byte legend (one shadow byte represents 8 application bytes):
|
Addressable: 00
|
Partially addressable: 01 02 03 04 05 06 07
|
Heap left redzone: fa
|
Heap right redzone: fb
|
Freed heap region: fd
|
Stack left redzone: f1
|
Stack mid redzone: f2
|
Stack right redzone: f3
|
Stack partial redzone: f4
|
Stack after return: f5
|
Stack use after scope: f8
|
Global redzone: f9
|
Global init order: f6
|
Poisoned by user: f7
|
Contiguous container OOB:fc
|
ASan internal: fe
|
==28679==ABORTING
|
10.1 ASAN 6567636b |
==30187==ERROR: AddressSanitizer: heap-use-after-free on address 0x60c0000b04b0 at pc 0x55c96a066818 bp 0x7f5c974026b0 sp 0x7f5c974026a8
|
READ of size 3 at 0x60c0000b04b0 thread T23
|
#0 0x55c96a066817 in String::copy(String const&) /data/src/10.1/sql/sql_string.cc:176
|
#1 0x55c96a57d5c7 in Item_func_make_set::val_str(String*) /data/src/10.1/sql/item_strfunc.cc:2785
|
#2 0x55c96a425c97 in Item_copy_string::copy() /data/src/10.1/sql/item.cc:4063
|
#3 0x55c969fb0cfb in copy_fields(TMP_TABLE_PARAM*) /data/src/10.1/sql/sql_select.cc:23163
|
#4 0x55c969fbee35 in end_send_group(JOIN*, st_join_table*, bool) /data/src/10.1/sql/sql_select.cc:19816
|
#5 0x55c969f544d2 in evaluate_join_record /data/src/10.1/sql/sql_select.cc:18702
|
#6 0x55c969f7011d in sub_select(JOIN*, st_join_table*, bool) /data/src/10.1/sql/sql_select.cc:18479
|
#7 0x55c969fa96f0 in do_select /data/src/10.1/sql/sql_select.cc:18134
|
#8 0x55c969fee26e in JOIN::exec_inner() /data/src/10.1/sql/sql_select.cc:3275
|
#9 0x55c969fef556 in JOIN::exec() /data/src/10.1/sql/sql_select.cc:2562
|
#10 0x55c969fe3da9 in 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*) /data/src/10.1/sql/sql_select.cc:3499
|
#11 0x55c969fe4597 in handle_select(THD*, LEX*, select_result*, unsigned long) /data/src/10.1/sql/sql_select.cc:388
|
#12 0x55c969eb3603 in execute_sqlcom_select /data/src/10.1/sql/sql_parse.cc:5991
|
#13 0x55c969ecd94d in mysql_execute_command(THD*) /data/src/10.1/sql/sql_parse.cc:3042
|
#14 0x55c969ee5af0 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /data/src/10.1/sql/sql_parse.cc:7509
|
#15 0x55c969eec8a2 in dispatch_command(enum_server_command, THD*, char*, unsigned int) /data/src/10.1/sql/sql_parse.cc:1496
|
#16 0x55c969ef3074 in do_command(THD*) /data/src/10.1/sql/sql_parse.cc:1124
|
#17 0x55c96a19b5e7 in do_handle_one_connection(THD*) /data/src/10.1/sql/sql_connect.cc:1330
|
#18 0x55c96a19baf8 in handle_one_connection /data/src/10.1/sql/sql_connect.cc:1242
|
#19 0x55c96aa6b24e in pfs_spawn_thread /data/src/10.1/storage/perfschema/pfs.cc:1861
|
#20 0x7f5cb068b493 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7493)
|
#21 0x7f5caea4493e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xe893e)
|
|
0x60c0000b04b0 is located 112 bytes inside of 124-byte region [0x60c0000b0440,0x60c0000b04bc)
|
freed by thread T23 here:
|
#0 0x7f5cb08f5527 in __interceptor_free (/usr/lib/x86_64-linux-gnu/libasan.so.1+0x54527)
|
#1 0x55c96b2377cf in free_memory /data/src/10.1/mysys/safemalloc.c:276
|
|
previously allocated by thread T23 here:
|
#0 0x7f5cb08f573f in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.1+0x5473f)
|
#1 0x55c96b2378a0 in sf_malloc /data/src/10.1/mysys/safemalloc.c:115
|
#2 0x55c96b3302da (/data/bld/10.1-asan/bin/mysqld+0x1da02da)
|
|
Thread T23 created by T0 here:
|
#0 0x7f5cb08c4bba in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.1+0x23bba)
|
#1 0x55c96aa76aa5 in spawn_thread_v1 /data/src/10.1/storage/perfschema/pfs.cc:1911
|
|
SUMMARY: AddressSanitizer: heap-use-after-free /data/src/10.1/sql/sql_string.cc:176 String::copy(String const&)
|
Shadow bytes around the buggy address:
|
0x0c188000e040: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
|
0x0c188000e050: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
|
0x0c188000e060: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
|
0x0c188000e070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04
|
0x0c188000e080: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
|
=>0x0c188000e090: fd fd fd fd fd fd[fd]fd fa fa fa fa fa fa fa fa
|
0x0c188000e0a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04
|
0x0c188000e0b0: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
|
0x0c188000e0c0: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa
|
0x0c188000e0d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04
|
0x0c188000e0e0: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
|
Shadow byte legend (one shadow byte represents 8 application bytes):
|
Addressable: 00
|
Partially addressable: 01 02 03 04 05 06 07
|
Heap left redzone: fa
|
Heap right redzone: fb
|
Freed heap region: fd
|
Stack left redzone: f1
|
Stack mid redzone: f2
|
Stack right redzone: f3
|
Stack partial redzone: f4
|
Stack after return: f5
|
Stack use after scope: f8
|
Global redzone: f9
|
Global init order: f6
|
Poisoned by user: f7
|
Contiguous container OOB:fc
|
ASan internal: fe
|
==30187==ABORTING
|
No obvious problems on non-ASAN builds, only the warning
Warnings:
|
Warning 1292 Truncated incorrect INTEGER value: '1974-05-06' |
but it might be expected.