Skip to content

echo /a/b/c | llvm-cxxfilt --strip-underscore throws SIGABRT due to out-of-bounds access #118705

@lf-

Description

@lf-
 » llvm-cxxfilt --version
llvm-cxxfilt
LLVM (http://llvm.org/):
  LLVM version 18.1.8
  Optimized build.
 » echo /a/b/c | llvm-cxxfilt --strip-underscore
/usr/include/c++/14.1.1/string_view:256: constexpr const std::basic_string_view<_CharT, _Traits>::value_type& std::basic_string_view<_CharT, _Traits>::operator[](size_type) const [with _CharT = char; _Traits = std::char_traits<char>; const_reference = const char&; size_type = long unsigned int]: Assertion '__pos < this->_M_len' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: llvm-cxxfilt --strip-underscore
 #0 0x000077a8fa9bfd90 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/src/debug/llvm/llvm-18.1.8.src/lib/Support/Unix/Signals.inc:723:22
 #1 0x000077a8fa9bcd4d llvm::sys::RunSignalHandlers() /usr/src/debug/llvm/llvm-18.1.8.src/lib/Support/Signals.cpp:105:20
 #2 0x000077a8fa9bcd4d SignalHandler /usr/src/debug/llvm/llvm-18.1.8.src/lib/Support/Unix/Signals.inc:403:31
 #3 0x000077a8f9dc11d0 (/usr/lib/libc.so.6+0x3d1d0)
 #4 0x000077a8f9e1a3f4 __pthread_kill_implementation /usr/src/debug/glibc/glibc/nptl/pthread_kill.c:44:76
 #5 0x000077a8f9dc1120 raise /usr/src/debug/glibc/glibc/signal/../sysdeps/posix/raise.c:27:6
 #6 0x000077a8f9da84c3 abort /usr/src/debug/glibc/glibc/stdlib/abort.c:81:7
 #7 0x000077a8fa048af0 std::chrono::_V2::system_clock::now() /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/chrono.cc:52:5
 #8 0x00005bac031a3fb0 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::capacity() const /usr/include/c++/14.1.1/bits/basic_string.h:1182:23
 #9 0x00005bac031a3fb0 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_append(char const*, unsigned long) /usr/include/c++/14.1.1/bits/basic_string.tcc:418:34
#10 0x00005bac031a3fb0 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::append(char const*, unsigned long) /usr/include/c++/14.1.1/bits/basic_string.h:1470:18
#11 0x00005bac031a3fb0 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> std::__str_concat<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::size_type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::size_type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::allocator_type const&) /usr/include/c++/14.1.1/bits/basic_string.h:3584:19
#12 0x00005bac031a3fb0 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> std::operator+<char, std::char_traits<char>, std::allocator<char>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, char const*) /usr/include/c++/14.1.1/bits/basic_string.h:3659:31
#13 0x00005bac031a3fb0 demangle /usr/src/debug/llvm/llvm-18.1.8.src/tools/llvm-cxxfilt/llvm-cxxfilt.cpp:92:24
#14 0x00005bac031a44de std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::size() const /usr/include/c++/14.1.1/bits/basic_string.h:1077:16
#15 0x00005bac031a44de std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> std::operator+<char, std::char_traits<char>, std::allocator<char>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&&) /usr/include/c++/14.1.1/bits/basic_string.h:3709:34
#16 0x00005bac031a44de demangleLine /usr/src/debug/llvm/llvm-18.1.8.src/tools/llvm-cxxfilt/llvm-cxxfilt.cpp:140:71
#17 0x00005bac031a5ce0 std::basic_istream<char, std::char_traits<char>>& std::getline<char, std::char_traits<char>, std::allocator<char>>(std::basic_istream<char, std::char_traits<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&) /usr/include/c++/14.1.1/bits/basic_string.h:4119:50
#18 0x00005bac031a5ce0 llvm_cxxfilt_main(int, char**, llvm::ToolContext const&) /usr/src/debug/llvm/llvm-18.1.8.src/tools/llvm-cxxfilt/llvm-cxxfilt.cpp:182:43
#19 0x00005bac031a3215 main /usr/src/debug/llvm/llvm-18.1.8.src/build/tools/llvm-cxxfilt/llvm-cxxfilt-driver.cpp:18:1
#20 0x000077a8f9da9e08 __libc_start_call_main /usr/src/debug/glibc/glibc/csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#21 0x000077a8f9da9ecc call_init /usr/src/debug/glibc/glibc/csu/../csu/libc-start.c:128:20
#22 0x000077a8f9da9ecc __libc_start_main /usr/src/debug/glibc/glibc/csu/../csu/libc-start.c:347:5
#23 0x00005bac031a3275 (/usr/bin/llvm-cxxfilt+0x2275)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions