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.