public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug gdb/28063] New: ASan crash in value_primitive_field / value_contents_copy_raw when printing std::tuple
@ 2021-07-07 16:27 simark at simark dot ca
  2021-07-07 16:30 ` [Bug gdb/28063] " simark at simark dot ca
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: simark at simark dot ca @ 2021-07-07 16:27 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=28063

            Bug ID: 28063
           Summary: ASan crash in value_primitive_field /
                    value_contents_copy_raw when printing std::tuple
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gdb
          Assignee: unassigned at sourceware dot org
          Reporter: simark at simark dot ca
  Target Milestone: ---

I hit this while debugging GDB itself.  I don't have a small reproducer at the
moment, but I have a self-contained easy reproducer using the GDB binary and a
core file of it I created.  It's a bit too big to attach here so I'll post a
link in a follow-up comment.

Steps to reproduce:

1. Extract the archive to /tmp/repro
2. Compile GDB with AddressSanitizer
2. Run:

  $ ./gdb -q -nx --data-directory=data-directory  -iex "set sysroot /tmp/repro"
/tmp/repro/gdb  /tmp/repro/core.3164744 -ex 'p
current_inferior_.m_obj.thread_list.m_front.priv' -batch


The error I get:

==2087857==ERROR: AddressSanitizer: heap-buffer-overflow on address
0x60200009b10f at pc 0x7f7575b843a7 bp 0x7fffbac99b10 sp 0x7fffbac992b8         
READ of size 1 at 0x60200009b10f thread T0                                      
    #0 0x7f7575b843a6 in __interceptor_memcpy
../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:827 
    #1 0x124aa6c in memcpy
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:34                        
    #2 0x124aa6c in value_contents_copy_raw
/home/smarchi/src/binutils-gdb/gdb/value.c:1332                                 
    #3 0x1251b95 in value_primitive_field(value*, long, int, type*)
/home/smarchi/src/binutils-gdb/gdb/value.c:3096                                 
    #4 0x7f4c87 in cp_print_value_fields(value*, ui_file*, int,
value_print_options const*, type**, int)
/home/smarchi/src/binutils-gdb/gdb/cp-valprint.c:333                            
    #5 0x7f5f75 in cp_print_value
/home/smarchi/src/binutils-gdb/gdb/cp-valprint.c:513                            
    #6 0x7f5f75 in cp_print_value_fields(value*, ui_file*, int,
value_print_options const*, type**, int)
/home/smarchi/src/binutils-gdb/gdb/cp-valprint.c:159                            
    #7 0x7f5f75 in cp_print_value
/home/smarchi/src/binutils-gdb/gdb/cp-valprint.c:513                            
    #8 0x7f5f75 in cp_print_value_fields(value*, ui_file*, int,
value_print_options const*, type**, int)
/home/smarchi/src/binutils-gdb/gdb/cp-valprint.c:159                            
    #9 0x7f5f75 in cp_print_value
/home/smarchi/src/binutils-gdb/gdb/cp-valprint.c:513                            
    #10 0x7f5f75 in cp_print_value_fields(value*, ui_file*, int,
value_print_options const*, type**, int)
/home/smarchi/src/binutils-gdb/gdb/cp-valprint.c:159                            
    #11 0x6faa66 in c_value_print_struct
/home/smarchi/src/binutils-gdb/gdb/c-valprint.c:383                             
    #12 0x6faa66 in c_value_print_inner(value*, ui_file*, int,
value_print_options const*) /home/smarchi/src/binutils-gdb/gdb/c-valprint.c:438 
    #13 0x1235c77 in do_val_print
/home/smarchi/src/binutils-gdb/gdb/valprint.c:1046                              
    #14 0x7f4cea in cp_print_value_fields(value*, ui_file*, int,
value_print_options const*, type**, int)
/home/smarchi/src/binutils-gdb/gdb/cp-valprint.c:335                            
    #15 0x7f5f75 in cp_print_value
/home/smarchi/src/binutils-gdb/gdb/cp-valprint.c:513                            
    #16 0x7f5f75 in cp_print_value_fields(value*, ui_file*, int,
value_print_options const*, type**, int)
/home/smarchi/src/binutils-gdb/gdb/cp-valprint.c:159                            
    #17 0x6faa66 in c_value_print_struct
/home/smarchi/src/binutils-gdb/gdb/c-valprint.c:383
    #18 0x6faa66 in c_value_print_inner(value*, ui_file*, int,
value_print_options const*) /home/smarchi/src/binutils-gdb/gdb/c-valprint.c:438
    #19 0x1235c77 in do_val_print
/home/smarchi/src/binutils-gdb/gdb/valprint.c:1046
    #20 0x7f4cea in cp_print_value_fields(value*, ui_file*, int,
value_print_options const*, type**, int)
/home/smarchi/src/binutils-gdb/gdb/cp-valprint.c:335
    #21 0x6faa66 in c_value_print_struct
/home/smarchi/src/binutils-gdb/gdb/c-valprint.c:383
    #22 0x6faa66 in c_value_print_inner(value*, ui_file*, int,
value_print_options const*) /home/smarchi/src/binutils-gdb/gdb/c-valprint.c:438
    #23 0x1235c77 in do_val_print
/home/smarchi/src/binutils-gdb/gdb/valprint.c:1046
    #24 0x6fb4d5 in c_value_print(value*, ui_file*, value_print_options const*)
/home/smarchi/src/binutils-gdb/gdb/c-valprint.c:587
    #25 0x1236a37 in value_print(value*, ui_file*, value_print_options const*)
/home/smarchi/src/binutils-gdb/gdb/valprint.c:1187
    #26 0xd7eafe in print_value(value*, value_print_options const&)
/home/smarchi/src/binutils-gdb/gdb/printcmd.c:1258
    #27 0xd7f00f in print_command_1
/home/smarchi/src/binutils-gdb/gdb/printcmd.c:1344
    #28 0x72ad29 in cmd_func(cmd_list_element*, char const*, int)
/home/smarchi/src/binutils-gdb/gdb/cli/cli-decode.c:2160
    #29 0x10e7464 in execute_command(char const*, int)
/home/smarchi/src/binutils-gdb/gdb/top.c:674                                    
    #30 0xc4af30 in catch_command_errors
/home/smarchi/src/binutils-gdb/gdb/main.c:523
    #31 0xc4b204 in execute_cmdargs
/home/smarchi/src/binutils-gdb/gdb/main.c:618
    #32 0xc503af in captured_main_1
/home/smarchi/src/binutils-gdb/gdb/main.c:1322
    #33 0xc5153b in captured_main
/home/smarchi/src/binutils-gdb/gdb/main.c:1343
    #34 0xc5153b in gdb_main(captured_main_args*)
/home/smarchi/src/binutils-gdb/gdb/main.c:1368
    #35 0x487ffd in main /home/smarchi/src/binutils-gdb/gdb/gdb.c:32
    #36 0x7f7574bac0b2 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
    #37 0x4acdfd in _start
(/home/smarchi/build/binutils-gdb-opt/gdb/gdb+0x4acdfd)

0x60200009b10f is located 1 bytes to the left of 8-byte region
[0x60200009b110,0x60200009b118)
allocated by thread T0 here:
    #0 0x7f7575bfee17 in __interceptor_calloc
../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154                     
    #1 0x56b0a0 in xcalloc /home/smarchi/src/binutils-gdb/gdb/alloc.c:100

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-01-05 15:31 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-07 16:27 [Bug gdb/28063] New: ASan crash in value_primitive_field / value_contents_copy_raw when printing std::tuple simark at simark dot ca
2021-07-07 16:30 ` [Bug gdb/28063] " simark at simark dot ca
2021-07-07 16:33 ` simark at simark dot ca
2021-07-07 17:18 ` simark at simark dot ca
2021-07-08  0:26 ` simark at simark dot ca
2021-07-08 15:05 ` simark at simark dot ca
2021-07-25 16:41 ` ssbssa at sourceware dot org
2023-11-14 15:31 ` tromey at sourceware dot org
2024-01-05 14:53 ` ssbssa at sourceware dot org
2024-01-05 15:31 ` simon.marchi at polymtl dot ca

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).