https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123922

            Bug ID: 123922
           Summary: asan error: heap-use-after-free in
                    update_hard_regno_preference, lra-assigns.cc
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Keywords: needs-bisection, ra
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pheeck at gcc dot gnu.org
            Blocks: 86656
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: x86_64-pc-linux-gnu

With an asan-instrumented GCC, compiling the testsuite testcase
gcc.target/i386/asm-hard-reg-2.c:

ASAN_OPTIONS="print_summary=1:print_stacktrace=1" gcc
src/gcc/testsuite/gcc.target/i386/asm-hard-reg-2.c -O2

results in:

=================================================================
==3597000==ERROR: AddressSanitizer: heap-use-after-free on address
0x7cebd3c02784 at pc 0x000001b420eb bp 0x7ffd9c45c170 sp 0x7ffd9c45c168
READ of size 4 at 0x7cebd3c02784 thread T0
    #0 0x000001b420ea in update_hard_regno_preference
/home/worker/buildworker/tiber-gcc-asan/build/gcc/lra-assigns.cc:770
    #1 0x000001b537c1 in lra_split_hard_reg_for(bool)
/home/worker/buildworker/tiber-gcc-asan/build/gcc/lra-assigns.cc:1868
    #2 0x000001b3f773 in lra(_IO_FILE*, int)
/home/worker/buildworker/tiber-gcc-asan/build/gcc/lra.cc:2535
    #3 0x000001a2a48d in do_reload
/home/worker/buildworker/tiber-gcc-asan/build/gcc/ira.cc:6076
    #4 0x000001a2a48d in execute
/home/worker/buildworker/tiber-gcc-asan/build/gcc/ira.cc:6264
    #5 0x000001df8922 in execute_one_pass(opt_pass*)
/home/worker/buildworker/tiber-gcc-asan/build/gcc/passes.cc:2656
    #6 0x000001dfa73e in execute_pass_list_1
/home/worker/buildworker/tiber-gcc-asan/build/gcc/passes.cc:2769
    #7 0x000001dfa764 in execute_pass_list_1
/home/worker/buildworker/tiber-gcc-asan/build/gcc/passes.cc:2770
    #8 0x000001dfa824 in execute_pass_list(function*, opt_pass*)
/home/worker/buildworker/tiber-gcc-asan/build/gcc/passes.cc:2780
    #9 0x000000f962ae in cgraph_node::expand()
/home/worker/buildworker/tiber-gcc-asan/build/gcc/cgraphunit.cc:1871
    #10 0x000000f962ae in cgraph_node::expand()
/home/worker/buildworker/tiber-gcc-asan/build/gcc/cgraphunit.cc:1824
    #11 0x000000f9b8ff in expand_all_functions
/home/worker/buildworker/tiber-gcc-asan/build/gcc/cgraphunit.cc:2054
    #12 0x000000f9b8ff in symbol_table::compile()
/home/worker/buildworker/tiber-gcc-asan/build/gcc/cgraphunit.cc:2432
    #13 0x000000f9b8ff in symbol_table::compile()
/home/worker/buildworker/tiber-gcc-asan/build/gcc/cgraphunit.cc:2340
    #14 0x000000fa338c in symbol_table::finalize_compilation_unit()
/home/worker/buildworker/tiber-gcc-asan/build/gcc/cgraphunit.cc:2623
    #15 0x00000227e7e2 in compile_file
/home/worker/buildworker/tiber-gcc-asan/build/gcc/toplev.cc:482
    #16 0x000000842fe4 in do_compile
/home/worker/buildworker/tiber-gcc-asan/build/gcc/toplev.cc:2225
    #17 0x000000842fe4 in toplev::main(int, char**)
/home/worker/buildworker/tiber-gcc-asan/build/gcc/toplev.cc:2390
    #18 0x00000084e6fd in main
/home/worker/buildworker/tiber-gcc-asan/build/gcc/main.cc:39
    #19 0x7f6bd4a2b2fa in __libc_start_call_main (/lib64/libc.so.6+0x2b2fa)
(BuildId: 8523b213e7586a93ab00f6dd476418b1e521e62c)
    #20 0x7f6bd4a2b3ca in __libc_start_main_impl (/lib64/libc.so.6+0x2b3ca)
(BuildId: 8523b213e7586a93ab00f6dd476418b1e521e62c)
    #21 0x000000851554 in _start ../sysdeps/x86_64/start.S:115

0x7cebd3c02784 is located 772 bytes inside of 804-byte region
[0x7cebd3c02480,0x7cebd3c027a4)
freed by thread T0 here:
    #0 0x000000939eaf in free
/home/worker/buildworker/tiber-gcc-asan/build/libsanitizer/asan/asan_malloc_linux.cpp:51
    #1 0x000001b4e7ad in assign_by_spills
/home/worker/buildworker/tiber-gcc-asan/build/gcc/lra-assigns.cc:1606
    #2 0x000001b4e7ad in lra_assign(bool&)
/home/worker/buildworker/tiber-gcc-asan/build/gcc/lra-assigns.cc:1672

previously allocated by thread T0 here:
    #0 0x00000093ac2f in calloc
/home/worker/buildworker/tiber-gcc-asan/build/libsanitizer/asan/asan_malloc_linux.cpp:74
    #1 0x0000066d43a4 in xcalloc
/home/worker/buildworker/tiber-gcc-asan/build/libiberty/xmalloc.c:164

SUMMARY: AddressSanitizer: heap-use-after-free
/home/worker/buildworker/tiber-gcc-asan/build/gcc/lra-assigns.cc:770 in
update_hard_regno_preference
Shadow bytes around the buggy address:
  0x7cebd3c02500: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x7cebd3c02580: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x7cebd3c02600: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x7cebd3c02680: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x7cebd3c02700: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
=>0x7cebd3c02780:[fd]fd fd fd fd fa fa fa fa fa fa fa fa fa fa fa
  0x7cebd3c02800: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x7cebd3c02880: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x7cebd3c02900: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x7cebd3c02980: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x7cebd3c02a00: fa fa fa fa fa fa fa fa fa fa fa 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
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  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
==3597000==ABORTING


Configured with: /home/worker/buildworker/tiber-gcc-asan/build/configure
--enable-languages=default,jit,lto,go,d --enable-host-shared
--enable-checking=release --disable-multilib --with-build-config=bootstrap-asan


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86656
[Bug 86656] [meta-bug] Issues found with -fsanitize=address

Reply via email to