Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-21648

Corrupt output or AddressSanitizer: heap-use-after-free in Binary_string::copy or String::copy upon query with RPAD and ROLLUP

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.1, 10.2, 10.3, 10.4, 10.5, 10.6
    • 10.4, 10.5
    • Data types, Server
    • None

    Description

      CREATE TABLE t1 (a int);
      INSERT INTO t1 VALUES (31),(32);
      SELECT BINARY( RPAD( a, a, ' ' ) ) AS f FROM t1 GROUP BY f WITH ROLLUP;
       
      # Cleanup
      DROP TABLE t1;
      

      10.4 ASAN b615d275

      ==2099==ERROR: AddressSanitizer: heap-use-after-free on address 0x60e00006b110 at pc 0x7ff9228e92a3 bp 0x7ff917a0fd20 sp 0x7ff917a0f4d0
      READ of size 32 at 0x60e00006b110 thread T5
          #0 0x7ff9228e92a2 in memmove (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x622a2)
          #1 0x5621acd8d68e in Binary_string::copy(Binary_string const&) /data/src/10.4/sql/sql_string.cc:230
          #2 0x5621acaba5af in String::copy(String const&) /data/src/10.4/sql/sql_string.h:817
          #3 0x5621ad3691b4 in Item_copy_string::copy() /data/src/10.4/sql/item.cc:4839
          #4 0x5621accdff74 in copy_fields(TMP_TABLE_PARAM*) /data/src/10.4/sql/sql_select.cc:25006
          #5 0x5621accc9c27 in end_send_group(JOIN*, st_join_table*, bool) /data/src/10.4/sql/sql_select.cc:21731
          #6 0x5621accc0892 in evaluate_join_record /data/src/10.4/sql/sql_select.cc:20558
          #7 0x5621accbfb12 in sub_select(JOIN*, st_join_table*, bool) /data/src/10.4/sql/sql_select.cc:20377
          #8 0x5621accbd898 in do_select /data/src/10.4/sql/sql_select.cc:19876
          #9 0x5621acc5679f in JOIN::exec_inner() /data/src/10.4/sql/sql_select.cc:4452
          #10 0x5621acc540ab in JOIN::exec() /data/src/10.4/sql/sql_select.cc:4234
          #11 0x5621acc57b5d 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:4666
          #12 0x5621acc2d3a4 in handle_select(THD*, LEX*, select_result*, unsigned long) /data/src/10.4/sql/sql_select.cc:420
          #13 0x5621acbafa16 in execute_sqlcom_select /data/src/10.4/sql/sql_parse.cc:6360
          #14 0x5621acb9d822 in mysql_execute_command(THD*) /data/src/10.4/sql/sql_parse.cc:3899
          #15 0x5621acbb8035 in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/src/10.4/sql/sql_parse.cc:7901
          #16 0x5621acb91350 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/src/10.4/sql/sql_parse.cc:1842
          #17 0x5621acb8e250 in do_command(THD*) /data/src/10.4/sql/sql_parse.cc:1360
          #18 0x5621acf15466 in do_handle_one_connection(CONNECT*) /data/src/10.4/sql/sql_connect.cc:1412
          #19 0x5621acf14e1a in handle_one_connection /data/src/10.4/sql/sql_connect.cc:1316
          #20 0x5621ae37e9c9 in pfs_spawn_thread /data/src/10.4/storage/perfschema/pfs.cc:1869
          #21 0x7ff9226714a3 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x74a3)
          #22 0x7ff9207a5d0e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xe8d0e)
       
      0x60e00006b110 is located 112 bytes inside of 148-byte region [0x60e00006b0a0,0x60e00006b134)
      freed by thread T5 here:
          #0 0x7ff922948a10 in free (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1a10)
          #1 0x5621ae4b1074 in free_memory /data/src/10.4/mysys/safemalloc.c:279
          #2 0x5621ae4b075d in sf_free /data/src/10.4/mysys/safemalloc.c:197
          #3 0x5621ae4828ef in my_free /data/src/10.4/mysys/my_malloc.c:222
          #4 0x5621ac9081a7 in Binary_string::free() /data/src/10.4/sql/sql_string.h:604
          #5 0x5621acd8c3c8 in Binary_string::real_alloc(unsigned long) /data/src/10.4/sql/sql_string.cc:43
          #6 0x5621ac925b3f in Binary_string::alloc(unsigned long) /data/src/10.4/sql/sql_string.h:613
          #7 0x5621acd8d5a4 in Binary_string::copy(Binary_string const&) /data/src/10.4/sql/sql_string.cc:227
          #8 0x5621acaba5af in String::copy(String const&) /data/src/10.4/sql/sql_string.h:817
          #9 0x5621ad3691b4 in Item_copy_string::copy() /data/src/10.4/sql/item.cc:4839
          #10 0x5621accdff74 in copy_fields(TMP_TABLE_PARAM*) /data/src/10.4/sql/sql_select.cc:25006
          #11 0x5621accc9c27 in end_send_group(JOIN*, st_join_table*, bool) /data/src/10.4/sql/sql_select.cc:21731
          #12 0x5621accc0892 in evaluate_join_record /data/src/10.4/sql/sql_select.cc:20558
          #13 0x5621accbfb12 in sub_select(JOIN*, st_join_table*, bool) /data/src/10.4/sql/sql_select.cc:20377
          #14 0x5621accbd898 in do_select /data/src/10.4/sql/sql_select.cc:19876
          #15 0x5621acc5679f in JOIN::exec_inner() /data/src/10.4/sql/sql_select.cc:4452
          #16 0x5621acc540ab in JOIN::exec() /data/src/10.4/sql/sql_select.cc:4234
          #17 0x5621acc57b5d 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:4666
          #18 0x5621acc2d3a4 in handle_select(THD*, LEX*, select_result*, unsigned long) /data/src/10.4/sql/sql_select.cc:420
          #19 0x5621acbafa16 in execute_sqlcom_select /data/src/10.4/sql/sql_parse.cc:6360
          #20 0x5621acb9d822 in mysql_execute_command(THD*) /data/src/10.4/sql/sql_parse.cc:3899
          #21 0x5621acbb8035 in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/src/10.4/sql/sql_parse.cc:7901
          #22 0x5621acb91350 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/src/10.4/sql/sql_parse.cc:1842
          #23 0x5621acb8e250 in do_command(THD*) /data/src/10.4/sql/sql_parse.cc:1360
          #24 0x5621acf15466 in do_handle_one_connection(CONNECT*) /data/src/10.4/sql/sql_connect.cc:1412
          #25 0x5621acf14e1a in handle_one_connection /data/src/10.4/sql/sql_connect.cc:1316
          #26 0x5621ae37e9c9 in pfs_spawn_thread /data/src/10.4/storage/perfschema/pfs.cc:1869
          #27 0x7ff9226714a3 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x74a3)
       
      previously allocated by thread T5 here:
          #0 0x7ff922948d28 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1d28)
          #1 0x5621ae4b0175 in sf_malloc /data/src/10.4/mysys/safemalloc.c:118
          #2 0x5621ae481ffe in my_malloc /data/src/10.4/mysys/my_malloc.c:101
          #3 0x5621acd8c427 in Binary_string::real_alloc(unsigned long) /data/src/10.4/sql/sql_string.cc:44
          #4 0x5621ac925b3f in Binary_string::alloc(unsigned long) /data/src/10.4/sql/sql_string.h:613
          #5 0x5621acd8d5a4 in Binary_string::copy(Binary_string const&) /data/src/10.4/sql/sql_string.cc:227
          #6 0x5621acaba5af in String::copy(String const&) /data/src/10.4/sql/sql_string.h:817
          #7 0x5621ad3691b4 in Item_copy_string::copy() /data/src/10.4/sql/item.cc:4839
          #8 0x5621accdff74 in copy_fields(TMP_TABLE_PARAM*) /data/src/10.4/sql/sql_select.cc:25006
          #9 0x5621accc9c27 in end_send_group(JOIN*, st_join_table*, bool) /data/src/10.4/sql/sql_select.cc:21731
          #10 0x5621accc0892 in evaluate_join_record /data/src/10.4/sql/sql_select.cc:20558
          #11 0x5621accbf4af in sub_select(JOIN*, st_join_table*, bool) /data/src/10.4/sql/sql_select.cc:20338
          #12 0x5621accbd898 in do_select /data/src/10.4/sql/sql_select.cc:19876
          #13 0x5621acc5679f in JOIN::exec_inner() /data/src/10.4/sql/sql_select.cc:4452
          #14 0x5621acc540ab in JOIN::exec() /data/src/10.4/sql/sql_select.cc:4234
          #15 0x5621acc57b5d 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:4666
          #16 0x5621acc2d3a4 in handle_select(THD*, LEX*, select_result*, unsigned long) /data/src/10.4/sql/sql_select.cc:420
          #17 0x5621acbafa16 in execute_sqlcom_select /data/src/10.4/sql/sql_parse.cc:6360
          #18 0x5621acb9d822 in mysql_execute_command(THD*) /data/src/10.4/sql/sql_parse.cc:3899
          #19 0x5621acbb8035 in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/src/10.4/sql/sql_parse.cc:7901
          #20 0x5621acb91350 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/src/10.4/sql/sql_parse.cc:1842
          #21 0x5621acb8e250 in do_command(THD*) /data/src/10.4/sql/sql_parse.cc:1360
          #22 0x5621acf15466 in do_handle_one_connection(CONNECT*) /data/src/10.4/sql/sql_connect.cc:1412
          #23 0x5621acf14e1a in handle_one_connection /data/src/10.4/sql/sql_connect.cc:1316
          #24 0x5621ae37e9c9 in pfs_spawn_thread /data/src/10.4/storage/perfschema/pfs.cc:1869
          #25 0x7ff9226714a3 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x74a3)
       
      Thread T5 created by T0 here:
          #0 0x7ff9228b7f59 in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x30f59)
          #1 0x5621ae37edb6 in spawn_thread_v1 /data/src/10.4/storage/perfschema/pfs.cc:1919
          #2 0x5621ac8e74f8 in inline_mysql_thread_create /data/src/10.4/include/mysql/psi/mysql_thread.h:1275
          #3 0x5621ac8fbaa1 in create_thread_to_handle_connection(CONNECT*) /data/src/10.4/sql/mysqld.cc:6234
          #4 0x5621ac8fc184 in create_new_thread(CONNECT*) /data/src/10.4/sql/mysqld.cc:6304
          #5 0x5621ac8fc50f in handle_accepted_socket(st_mysql_socket, st_mysql_socket) /data/src/10.4/sql/mysqld.cc:6402
          #6 0x5621ac8fd161 in handle_connections_sockets() /data/src/10.4/sql/mysqld.cc:6560
          #7 0x5621ac8fb322 in mysqld_main(int, char**) /data/src/10.4/sql/mysqld.cc:5892
          #8 0x5621ac8e53df in main /data/src/10.4/sql/main.cc:25
          #9 0x7ff9206dd2e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
       
      SUMMARY: AddressSanitizer: heap-use-after-free (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x622a2) in memmove
      Shadow bytes around the buggy address:
        0x0c1c800055d0: fa fa fa fa fa fa fa fa fa fa fa fa 00 00 00 00
        0x0c1c800055e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04
        0x0c1c800055f0: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
        0x0c1c80005600: 00 00 00 00 00 00 00 00 00 00 00 04 fa fa fa fa
        0x0c1c80005610: fa fa fa fa fd fd fd fd fd fd fd fd fd fd fd fd
      =>0x0c1c80005620: fd fd[fd]fd fd fd fd fa fa fa fa fa fa fa fa fa
        0x0c1c80005630: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x0c1c80005640: fd fd fd fa fa fa fa fa fa fa fa fa 00 00 00 00
        0x0c1c80005650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04
        0x0c1c80005660: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
        0x0c1c80005670: 00 00 00 00 00 00 00 00 00 00 04 fa fa fa fa fa
      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
        Container overflow:      fc
        Array cookie:            ac
        Intra object redzone:    bb
        ASan internal:           fe
        Left alloca redzone:     ca
        Right alloca redzone:    cb
      ==2099==ABORTING
      

      10.3 b0fa3080

      ==2255==ERROR: AddressSanitizer: heap-use-after-free on address 0x60e00006e050 at pc 0x7f2efb5042a3 bp 0x7f2eef439940 sp 0x7f2eef4390f0
      READ of size 32 at 0x60e00006e050 thread T5
          #0 0x7f2efb5042a2 in memmove (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x622a2)
          #1 0x563e53e3a7c2 in String::copy(String const&) /data/src/10.3/sql/sql_string.cc:233
          #2 0x563e543ae85a in Item_copy_string::copy() /data/src/10.3/sql/item.cc:5169
          #3 0x563e53d90232 in copy_fields(TMP_TABLE_PARAM*) /data/src/10.3/sql/sql_select.cc:24311
          #4 0x563e53d7a15d in end_send_group(JOIN*, st_join_table*, bool) /data/src/10.3/sql/sql_select.cc:21052
          #5 0x563e53d70992 in evaluate_join_record /data/src/10.3/sql/sql_select.cc:19888
          #6 0x563e53d6fbe7 in sub_select(JOIN*, st_join_table*, bool) /data/src/10.3/sql/sql_select.cc:19707
          #7 0x563e53d6d8b6 in do_select /data/src/10.3/sql/sql_select.cc:19208
          #8 0x563e53d08f42 in JOIN::exec_inner() /data/src/10.3/sql/sql_select.cc:4098
          #9 0x563e53d06b75 in JOIN::exec() /data/src/10.3/sql/sql_select.cc:3892
          #10 0x563e53d0a054 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.3/sql/sql_select.cc:4297
          #11 0x563e53ce408b in handle_select(THD*, LEX*, select_result*, unsigned long) /data/src/10.3/sql/sql_select.cc:370
          #12 0x563e53c65e02 in execute_sqlcom_select /data/src/10.3/sql/sql_parse.cc:6294
          #13 0x563e53c5566f in mysql_execute_command(THD*) /data/src/10.3/sql/sql_parse.cc:3821
          #14 0x563e53c6ee3e in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/src/10.3/sql/sql_parse.cc:7818
          #15 0x563e53c49b92 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/src/10.3/sql/sql_parse.cc:1856
          #16 0x563e53c46a71 in do_command(THD*) /data/src/10.3/sql/sql_parse.cc:1401
          #17 0x563e53fbce94 in do_handle_one_connection(CONNECT*) /data/src/10.3/sql/sql_connect.cc:1403
          #18 0x563e53fbc85b in handle_one_connection /data/src/10.3/sql/sql_connect.cc:1308
          #19 0x563e5542a199 in pfs_spawn_thread /data/src/10.3/storage/perfschema/pfs.cc:1869
          #20 0x7f2efb28c4a3 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x74a3)
          #21 0x7f2ef93c0d0e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xe8d0e)
       
      0x60e00006e050 is located 112 bytes inside of 148-byte region [0x60e00006dfe0,0x60e00006e074)
      freed by thread T5 here:
          #0 0x7f2efb563a10 in free (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1a10)
          #1 0x563e5555ae40 in free_memory /data/src/10.3/mysys/safemalloc.c:279
          #2 0x563e5555a529 in sf_free /data/src/10.3/mysys/safemalloc.c:197
          #3 0x563e5552c6bb in my_free /data/src/10.3/mysys/my_malloc.c:223
          #4 0x563e539d695d in String::free() /data/src/10.3/sql/sql_string.h:347
          #5 0x563e53e39522 in String::real_alloc(unsigned long) /data/src/10.3/sql/sql_string.cc:43
          #6 0x563e539fa42b in String::alloc(unsigned long) /data/src/10.3/sql/sql_string.h:357
          #7 0x563e53e3a6d8 in String::copy(String const&) /data/src/10.3/sql/sql_string.cc:230
          #8 0x563e543ae85a in Item_copy_string::copy() /data/src/10.3/sql/item.cc:5169
          #9 0x563e53d90232 in copy_fields(TMP_TABLE_PARAM*) /data/src/10.3/sql/sql_select.cc:24311
          #10 0x563e53d7a15d in end_send_group(JOIN*, st_join_table*, bool) /data/src/10.3/sql/sql_select.cc:21052
          #11 0x563e53d70992 in evaluate_join_record /data/src/10.3/sql/sql_select.cc:19888
          #12 0x563e53d6fbe7 in sub_select(JOIN*, st_join_table*, bool) /data/src/10.3/sql/sql_select.cc:19707
          #13 0x563e53d6d8b6 in do_select /data/src/10.3/sql/sql_select.cc:19208
          #14 0x563e53d08f42 in JOIN::exec_inner() /data/src/10.3/sql/sql_select.cc:4098
          #15 0x563e53d06b75 in JOIN::exec() /data/src/10.3/sql/sql_select.cc:3892
          #16 0x563e53d0a054 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.3/sql/sql_select.cc:4297
          #17 0x563e53ce408b in handle_select(THD*, LEX*, select_result*, unsigned long) /data/src/10.3/sql/sql_select.cc:370
          #18 0x563e53c65e02 in execute_sqlcom_select /data/src/10.3/sql/sql_parse.cc:6294
          #19 0x563e53c5566f in mysql_execute_command(THD*) /data/src/10.3/sql/sql_parse.cc:3821
          #20 0x563e53c6ee3e in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/src/10.3/sql/sql_parse.cc:7818
          #21 0x563e53c49b92 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/src/10.3/sql/sql_parse.cc:1856
          #22 0x563e53c46a71 in do_command(THD*) /data/src/10.3/sql/sql_parse.cc:1401
          #23 0x563e53fbce94 in do_handle_one_connection(CONNECT*) /data/src/10.3/sql/sql_connect.cc:1403
          #24 0x563e53fbc85b in handle_one_connection /data/src/10.3/sql/sql_connect.cc:1308
          #25 0x563e5542a199 in pfs_spawn_thread /data/src/10.3/storage/perfschema/pfs.cc:1869
          #26 0x7f2efb28c4a3 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x74a3)
       
      previously allocated by thread T5 here:
          #0 0x7f2efb563d28 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1d28)
          #1 0x563e55559f41 in sf_malloc /data/src/10.3/mysys/safemalloc.c:118
          #2 0x563e5552bdca in my_malloc /data/src/10.3/mysys/my_malloc.c:101
          #3 0x563e53e39581 in String::real_alloc(unsigned long) /data/src/10.3/sql/sql_string.cc:44
          #4 0x563e539fa42b in String::alloc(unsigned long) /data/src/10.3/sql/sql_string.h:357
          #5 0x563e53e3a6d8 in String::copy(String const&) /data/src/10.3/sql/sql_string.cc:230
          #6 0x563e543ae85a in Item_copy_string::copy() /data/src/10.3/sql/item.cc:5169
          #7 0x563e53d90232 in copy_fields(TMP_TABLE_PARAM*) /data/src/10.3/sql/sql_select.cc:24311
          #8 0x563e53d7a15d in end_send_group(JOIN*, st_join_table*, bool) /data/src/10.3/sql/sql_select.cc:21052
          #9 0x563e53d70992 in evaluate_join_record /data/src/10.3/sql/sql_select.cc:19888
          #10 0x563e53d6f56c in sub_select(JOIN*, st_join_table*, bool) /data/src/10.3/sql/sql_select.cc:19668
          #11 0x563e53d6d8b6 in do_select /data/src/10.3/sql/sql_select.cc:19208
          #12 0x563e53d08f42 in JOIN::exec_inner() /data/src/10.3/sql/sql_select.cc:4098
          #13 0x563e53d06b75 in JOIN::exec() /data/src/10.3/sql/sql_select.cc:3892
          #14 0x563e53d0a054 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.3/sql/sql_select.cc:4297
          #15 0x563e53ce408b in handle_select(THD*, LEX*, select_result*, unsigned long) /data/src/10.3/sql/sql_select.cc:370
          #16 0x563e53c65e02 in execute_sqlcom_select /data/src/10.3/sql/sql_parse.cc:6294
          #17 0x563e53c5566f in mysql_execute_command(THD*) /data/src/10.3/sql/sql_parse.cc:3821
          #18 0x563e53c6ee3e in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/src/10.3/sql/sql_parse.cc:7818
          #19 0x563e53c49b92 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/src/10.3/sql/sql_parse.cc:1856
          #20 0x563e53c46a71 in do_command(THD*) /data/src/10.3/sql/sql_parse.cc:1401
          #21 0x563e53fbce94 in do_handle_one_connection(CONNECT*) /data/src/10.3/sql/sql_connect.cc:1403
          #22 0x563e53fbc85b in handle_one_connection /data/src/10.3/sql/sql_connect.cc:1308
          #23 0x563e5542a199 in pfs_spawn_thread /data/src/10.3/storage/perfschema/pfs.cc:1869
          #24 0x7f2efb28c4a3 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x74a3)
       
      Thread T5 created by T0 here:
          #0 0x7f2efb4d2f59 in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x30f59)
          #1 0x563e5542a5d5 in spawn_thread_v1 /data/src/10.3/storage/perfschema/pfs.cc:1919
          #2 0x563e539b3e20 in inline_mysql_thread_create /data/src/10.3/include/mysql/psi/mysql_thread.h:1275
          #3 0x563e539c9131 in create_thread_to_handle_connection(CONNECT*) /data/src/10.3/sql/mysqld.cc:6600
          #4 0x563e539c9814 in create_new_thread /data/src/10.3/sql/mysqld.cc:6670
          #5 0x563e539ca82c in handle_connections_sockets() /data/src/10.3/sql/mysqld.cc:6945
          #6 0x563e539c8601 in mysqld_main(int, char**) /data/src/10.3/sql/mysqld.cc:6222
          #7 0x563e539b253f in main /data/src/10.3/sql/main.cc:25
          #8 0x7f2ef92f82e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
       
      SUMMARY: AddressSanitizer: heap-use-after-free (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x622a2) in memmove
      Shadow bytes around the buggy address:
        0x0c1c80005bb0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
        0x0c1c80005bc0: fa fa fa fa 00 00 00 00 00 00 00 00 00 00 00 00
        0x0c1c80005bd0: 00 00 00 00 00 00 00 04 fa fa fa fa fa fa fa fa
        0x0c1c80005be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        0x0c1c80005bf0: 00 00 00 04 fa fa fa fa fa fa fa fa fd fd fd fd
      =>0x0c1c80005c00: fd fd fd fd fd fd fd fd fd fd[fd]fd fd fd fd fa
        0x0c1c80005c10: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
        0x0c1c80005c20: fd fd fd fd fd fd fd fd fd fd fd fa fa fa fa fa
        0x0c1c80005c30: fa fa fa fa 00 00 00 00 00 00 00 00 00 00 00 00
        0x0c1c80005c40: 00 00 00 00 00 00 00 04 fa fa fa fa fa fa fa fa
        0x0c1c80005c50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      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
        Container overflow:      fc
        Array cookie:            ac
        Intra object redzone:    bb
        ASan internal:           fe
        Left alloca redzone:     ca
        Right alloca redzone:    cb
      ==2255==ABORTING
      

      Reproducible with at least MyISAM and InnoDB.
      Reproducible on 10.1-10.5 (old versions have a slightly different stack trace, see above).

      Non-ASAN builds don't crash for me, but can return corrupt result (possibly non-deterministically):

      10.4 debug b615d275

      SELECT BINARY( RPAD( a, a, ' ' ) ) AS f FROM t1 GROUP BY f WITH ROLLUP;
      f
      31                             
      ��������������������������������
      NULL
      

      Attachments

        Activity

          People

            sanja Oleksandr Byelkin
            elenst Elena Stepanova
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.