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

            Bug ID: 89215
           Summary: UBSAN leaks memory
           Product: gcc
           Version: 8.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: sanitizer
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mail at milianw dot de
                CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
                    jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at 
gcc dot gnu.org
  Target Milestone: ---

```
Direct leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x7f668faa7491 in __interceptor_realloc
/build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:105
    #1 0x7f666e7e5ad3 in d_growable_string_resize
/build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/cp-demangle.c:3983
    #2 0x7f666e7e5ad3 in d_growable_string_append_buffer
/build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/cp-demangle.c:4007
    #3 0x7f666e7e5ad3 in d_growable_string_callback_adapter
/build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/cp-demangle.c:4024
    #4 0x7f666e7ee822 in d_print_flush
/build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/cp-demangle.c:4222
    #5 0x7f666e7ee822 in d_print_callback
/build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/cp-demangle.c:4308
    #6 0x7f666e7ee822 in d_demangle_callback
/build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/cp-demangle.c:6277
    #7 0x7f666e7eead0 in d_demangle
/build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/cp-demangle.c:6299
    #8 0x7f666e7eead0 in __cxa_demangle
/build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/cp-demangle.c:6363
    #9 0x7f666dacd4f0 in __sanitizer::DemangleCXXABI(char const*)
/build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc:59
    #10 0x7f666dacd4f0 in __sanitizer::DemangleCXXABI(char const*)
/build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc:51
    #11 0x7f666dacd4f0 in __sanitizer::DemangleSwiftAndCXX(char const*)
/build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc:100
    #12 0x7f666dacd4f0 in __sanitizer::DemangleSwiftAndCXX(char const*)
/build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc:96
    #13 0x7f666dacc64b in __sanitizer::Symbolizer::Demangle(char const*)
/build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_symbolizer_libcdep.cc:143
    #14 0x7f666dab035a in RenderText
/build/gcc/src/gcc/libsanitizer/ubsan/ubsan_diag.cc:189
    #15 0x7f666dab0e68 in __ubsan::Diag::~Diag()
/build/gcc/src/gcc/libsanitizer/ubsan/ubsan_diag.cc:357
    #16 0x7f666dab5bb1 in HandleDynamicTypeCacheMiss
/build/gcc/src/gcc/libsanitizer/ubsan/ubsan_handlers_cxx.cc:67
    #17 0x7f666dab5f14 in __ubsan_handle_dynamic_type_cache_miss
/build/gcc/src/gcc/libsanitizer/ubsan/ubsan_handlers_cxx.cc:85
<stack continues>
```

Note that the `<stack continues>` points at my code, for which I got an UBSAN
warning before. So it seems like UBSAN itself leaked the memory!

Using sanitizers from gcc (GCC) 8.2.1 20181127 from Arch. I can reproduce this
with a commercial project I'm working on, so if there's something I should try
out I'm all ears.

Reply via email to