Actions:
|
2023-05-21 19:03 AEST by Arthur Barrett - cvsnt on linux (Debian 10) crashes lt_dlclose/ltdlexit (libtool) which calls ~CProtocolLibrary() which calls
~DirectoryAccessInfo which crashes on freeing memory for cvs::filename. I wonder if we need to rewrite
DirectoryAccessInfo to not use such a complex type here?
free(): invalid pointer
Program received signal SIGABRT, Aborted.
0xb7fd4d61 in __kernel_vsyscall ()
(gdb) bt
#0 0xb7fd4d61 in __kernel_vsyscall ()
#1 0xb7a60522 in __libc_signal_restore_set (set=0xbfff077c) at ../sysdeps/unix/sysv/linux/internal-
signals.h:84
#2 __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:48
#3 0xb7a4a2b6 in __GI_abort () at abort.c:79
#4 0xb7aa1ecc in __libc_message (action=do_abort, fmt=<optimized out>) at
../sysdeps/posix/libc_fatal.c:181
#5 0xb7aa8d0d in malloc_printerr (str=str@entry=0xb7bb09bb "free(): invalid pointer") at malloc.c:5359
#6 0xb7aaa3e3 in _int_free (av=0xb7c0b7a0 <main_arena>, p=<optimized out>, have_lock=0) at
malloc.c:4180
#7 0xb7da9688 in operator delete(void*) () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#8 0x0041f8ba in __gnu_cxx::new_allocator<char>::deallocate (this=0xb764f64c <(anonymous
namespace)::m_lib+20>, __p=<optimized out>) at /usr/include/c++/8/ext/new_allocator.h:116
#9 std::allocator_traits<std::allocator<char> >::deallocate (__a=..., __n=<optimized out>, __p=<optimized
out>) at /usr/include/c++/8/bits/alloc_traits.h:462
#10 std::__cxx11::basic_string<char, cvs::filename_char_traits, std::allocator<char> >::_M_destroy (__size=
<optimized out>, this=0xb764f64c <(anonymous namespace)::m_lib+20>) at
/usr/include/c++/8/bits/basic_string.h:226
#11 std::__cxx11::basic_string<char, cvs::filename_char_traits, std::allocator<char> >::_M_dispose
(this=0xb764f64c <(anonymous namespace)::m_lib+20>) at /usr/include/c++/8/bits/basic_string.h:221
#12 std::__cxx11::basic_string<char, cvs::filename_char_traits, std::allocator<char> >::_M_mutate
(this=0xb764f64c <(anonymous namespace)::m_lib+20>, __pos=0, __len1=0, __s=0xbfff0bf0 "xxx",
__len2=3)
at /usr/include/c++/8/bits/basic_string.tcc:327
#13 0x0041faeb in std::__cxx11::basic_string<char, cvs::filename_char_traits, std::allocator<char>
>::_M_replace (this=0xb764f64c <(anonymous namespace)::m_lib+20>, __pos=0, __len1=0, __s=0xbfff0bf0
"xxx", __len2=3)
at /usr/include/c++/8/bits/char_traits.h:352
#14 0x004610ee in std::__cxx11::basic_string<char, cvs::filename_char_traits, std::allocator<char> >::assign
(__s=0xbfff0bf0 "xxx", this=0xb764f64c <(anonymous namespace)::m_lib+20>) at
/usr/include/c++/8/bits/char_traits.h:322
#15 std::__cxx11::basic_string<char, cvs::filename_char_traits, std::allocator<char> >::operator=
(__s=0xbfff0bf0 "xxx", this=0xb764f64c <(anonymous namespace)::m_lib+20>) at
/usr/include/c++/8/bits/basic_string.h:704
#16 DirectoryAccessInfo::~DirectoryAccessInfo (this=0xb764f64c <(anonymous namespace)::m_lib+20>,
__in_chrg=<optimized out>) at ../cvsapi/DirectoryAccess.h:24
#17 CProtocolLibrary::~CProtocolLibrary (this=0xb764f638 <(anonymous namespace)::m_lib>, __in_chrg=
<optimized out>) at ../cvstools/ProtocolLibrary.h:28
#18 0xb7a6312c in __cxa_finalize (d=0xb764f5a0) at cxa_finalize.c:83
#19 0xb76386f4 in __do_global_dtors_aux () from /usr/local/lib/libcvstools-2.8.02.5590.so
#20 0xb764b080 in _fini () from /usr/local/lib/libcvstools-2.8.02.5590.so
#21 0xb7fea9cb in _dl_close_worker (force=<optimized out>, map=<optimized out>) at dl-close.c:293
#22 _dl_close_worker (map=<optimized out>, force=<optimized out>) at dl-close.c:111
#23 0xb7feb643 in _dl_close (_map=0x5aa270) at dl-close.c:842
#24 0xb7b6680c in __GI__dl_catch_exception (exception=<optimized out>, operate=<optimized out>, args=
<optimized out>) at dl-error-skeleton.c:196
#25 0xb7b668b0 in __GI__dl_catch_error (objname=0xb7f19064 <last_result+12>, errstring=0xb7f19068
<last_result+16>, mallocedp=0xb7f19060 <last_result+8>, operate=0xb7f153c0 <dlclose_doit>,
args=0x5aa270) at dl-error-skeleton.c:215
#26 0xb7f15ab1 in _dlerror_run (operate=0xb7f153c0 <dlclose_doit>, args=0x5aa270) at dlerror.c:170
#27 0xb7f15411 in __dlclose (handle=0x5aa270) at dlclose.c:46
#28 0xb7fb2878 in sys_dl_close (loader_data=0x0, module=0x5aa270) at ltdl.c:1116
#29 0xb7fb380c in lt_dlclose (handle=0x5aa750) at ltdl.c:3823
#30 0xb7fb3a13 in lt_dlexit () at ltdl.c:2329
#31 0xb7faf035 in (anonymous namespace)::dlunref () at unix/LibraryAccess.cpp:61
#32 CLibraryAccess::Unload (this=0xbfff1058) at unix/LibraryAccess.cpp:114
#33 0xb7f592e7 in CTriggerLibrary::CloseAllTriggers (this=<optimized out>) at TriggerLibrary.cpp:647
#34 0x00410c42 in main (argc=<optimized out>, argv=<optimized out>) at main.cpp:2285 |