https://bugs.kde.org/show_bug.cgi?id=490788

--- Comment #30 from Nicolas Fella <[email protected]> ---
==5614==ERROR: AddressSanitizer: heap-use-after-free on address 0x7bbc246373c0
at pc 0x7f4c2c5ea4e6 bp 0x7fff3e29daf0 sp 0x7fff3e29dae8
READ of size 8 at 0x7bbc246373c0 thread T0
    #0 0x7f4c2c5ea4e5 in QCA::Botan::MemoryRegion<unsigned
char>::deallocate(unsigned char*, unsigned int) const
/home/nico/kde-qtdev/src/qca/src/botantools/botan/botan/secmem.h:188
    #1 0x7f4c2c5e900e in QCA::Botan::MemoryRegion<unsigned
char>::~MemoryRegion()
/home/nico/kde-qtdev/src/qca/src/botantools/botan/botan/secmem.h:157
    #2 0x7f4c2c5e7847 in QCA::Botan::SecureVector<unsigned
char>::~SecureVector()
/home/nico/kde-qtdev/src/qca/src/botantools/botan/botan/secmem.h:299
    #3 0x7f4c2c5e2a4c in ai_delete
/home/nico/kde-qtdev/src/qca/src/qca_tools.cpp:335
    #4 0x7f4c2c5e79bb in QCA::MemoryRegion::Private::~Private()
/home/nico/kde-qtdev/src/qca/src/qca_tools.cpp:370
    #5 0x7f4c2c5ea5a9 in
QSharedDataPointer<QCA::MemoryRegion::Private>::destroy(QCA::MemoryRegion::Private*)
/home/nico/kde-qtdev/usr/include/QtCore/qshareddata.h:214
    #6 0x7f4c2c5e90b6 in
QSharedDataPointer<QCA::MemoryRegion::Private>::~QSharedDataPointer()
/home/nico/kde-qtdev/usr/include/QtCore/qshareddata.h:170
    #7 0x7f4c2c5e2ec3 in QCA::MemoryRegion::~MemoryRegion()
/home/nico/kde-qtdev/src/qca/src/qca_tools.cpp:418
    #8 0x7f4c2c5e3ebd in QCA::SecureArray::~SecureArray()
/home/nico/kde-qtdev/src/qca/src/qca_tools.cpp:597
    #9 0x0000004d5c51 in QCA::SymmetricKey::~SymmetricKey()
/home/nico/kde-qtdev/usr/include/Qca-qt6/QtCrypto/qca_core.h:1263
    #10 0x000000530a48 in
KWalletFreedesktopSessionAlgorithmDhAes::~KWalletFreedesktopSessionAlgorithmDhAes()
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/kwalletfreedesktopsession.h:74
    #11 0x000000530a7f in
KWalletFreedesktopSessionAlgorithmDhAes::~KWalletFreedesktopSessionAlgorithmDhAes()
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/kwalletfreedesktopsession.h:74
    #12 0x0000004eb3a2 in
std::default_delete<KWalletFreedesktopSessionAlgorithm>::operator()(KWalletFreedesktopSessionAlgorithm*)
const /usr/include/c++/15/bits/unique_ptr.h:92
    #13 0x0000004e1850 in std::unique_ptr<KWalletFreedesktopSessionAlgorithm,
std::default_delete<KWalletFreedesktopSessionAlgorithm> >::~unique_ptr()
/usr/include/c++/15/bits/unique_ptr.h:398
    #14 0x00000052fd1a in
KWalletFreedesktopSession::~KWalletFreedesktopSession()
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/kwalletfreedesktopsession.h:29
    #15 0x00000052fd51 in
KWalletFreedesktopSession::~KWalletFreedesktopSession()
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/kwalletfreedesktopsession.h:29
    #16 0x0000004ec618 in
std::default_delete<KWalletFreedesktopSession>::operator()(KWalletFreedesktopSession*)
const /usr/include/c++/15/bits/unique_ptr.h:92
    #17 0x0000004e31aa in std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> >::~unique_ptr()
/usr/include/c++/15/bits/unique_ptr.h:398
    #18 0x00000050bc2b in std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > >::~pair()
/usr/include/c++/15/bits/stl_pair.h:302
    #19 0x00000050bc52 in void std::destroy_at<std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > >(std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > >*)
/usr/include/c++/15/bits/stl_construct.h:88
    #20 0x0000004faa91 in void
std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<QString
const, std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > > >
>::destroy<std::pair<QString const, std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > >
>(std::allocator<std::_Rb_tree_node<std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > > >&, std::pair<QString
const, std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > >*)
/usr/include/c++/15/bits/alloc_traits.h:698
    #21 0x0000004faa91 in std::_Rb_tree<QString, std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > >,
std::_Select1st<std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > >, std::less<QString>,
std::allocator<std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > >
>::_M_destroy_node(std::_Rb_tree_node<std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > >*)
/usr/include/c++/15/bits/stl_tree.h:1265
    #22 0x0000004f0056 in std::_Rb_tree<QString, std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > >,
std::_Select1st<std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > >, std::less<QString>,
std::allocator<std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > >
>::_M_drop_node(std::_Rb_tree_node<std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > >*)
/usr/include/c++/15/bits/stl_tree.h:1273
    #23 0x0000004e88d4 in std::_Rb_tree<QString, std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > >,
std::_Select1st<std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > >, std::less<QString>,
std::allocator<std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > >
>::_M_erase(std::_Rb_tree_node<std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > >*)
/usr/include/c++/15/bits/stl_tree.h:2590
    #24 0x0000004de59f in std::_Rb_tree<QString, std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > >,
std::_Select1st<std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > >, std::less<QString>,
std::allocator<std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > > >::~_Rb_tree()
/usr/include/c++/15/bits/stl_tree.h:1609
    #25 0x0000004d8cad in std::map<QString,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> >, std::less<QString>,
std::allocator<std::pair<QString const,
std::unique_ptr<KWalletFreedesktopSession,
std::default_delete<KWalletFreedesktopSession> > > > >::~map()
/usr/include/c++/15/bits/stl_map.h:337
    #26 0x0000004bb7fa in
KWalletFreedesktopService::~KWalletFreedesktopService()
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/kwalletfreedesktopservice.cpp:182
    #27 0x0000004bb831 in
KWalletFreedesktopService::~KWalletFreedesktopService()
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/kwalletfreedesktopservice.cpp:182
    #28 0x00000045e63a in
std::default_delete<KWalletFreedesktopService>::operator()(KWalletFreedesktopService*)
const /usr/include/c++/15/bits/unique_ptr.h:92
    #29 0x000000455936 in std::unique_ptr<KWalletFreedesktopService,
std::default_delete<KWalletFreedesktopService> >::~unique_ptr()
(/home/nico/kde-qtdev/usr/bin/ksecretd+0x455936) (BuildId:
e48cea6af469c5e121eedaf01d039e0091c7c733)
    #30 0x00000042eee6 in KSecretD::~KSecretD()
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/ksecretd.cpp:177
    #31 0x000000424083 in main
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/main.cpp:208
    #32 0x7f4c2662b2fa in __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
    #33 0x7f4c2662b3ca in __libc_start_main_impl ../csu/libc-start.c:360
    #34 0x0000004208a4 in _start ../sysdeps/x86_64/start.S:115

0x7bbc246373c0 is located 0 bytes inside of 80-byte region
[0x7bbc246373c0,0x7bbc24637410)
freed by thread T0 here:
    #0 0x7f4c2d92369b in operator delete(void*, unsigned long)
../../../../libsanitizer/asan/asan_new_delete.cpp:155
    #1 0x7f4c2c7eed93 in QCA::Botan::Locking_Allocator::~Locking_Allocator()
/home/nico/kde-qtdev/src/qca/src/botantools/botan/botan/defalloc.h:65
    #2 0x7f4c2c807f17 in QCA::Botan::Library_State::~Library_State()
/home/nico/kde-qtdev/src/qca/src/botantools/botan/libstate.cpp:469
    #3 0x7f4c2c8065c2 in
QCA::Botan::set_global_state(QCA::Botan::Library_State*)
/home/nico/kde-qtdev/src/qca/src/botantools/botan/libstate.cpp:96
    #4 0x7f4c2c5e130e in QCA::botan_deinit()
/home/nico/kde-qtdev/src/qca/src/qca_tools.cpp:103
    #5 0x7f4c2c685b6c in QCA::deinit()
/home/nico/kde-qtdev/src/qca/src/qca_core.cpp:267
    #6 0x7f4c2c68d882 in QCA::Initializer::~Initializer()
/home/nico/kde-qtdev/src/qca/src/qca_core.cpp:897
    #7 0x0000004bb7ca in
KWalletFreedesktopService::~KWalletFreedesktopService()
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/kwalletfreedesktopservice.cpp:182
    #8 0x0000004bb831 in
KWalletFreedesktopService::~KWalletFreedesktopService()
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/kwalletfreedesktopservice.cpp:182
    #9 0x00000045e63a in
std::default_delete<KWalletFreedesktopService>::operator()(KWalletFreedesktopService*)
const /usr/include/c++/15/bits/unique_ptr.h:92
    #10 0x000000455936 in std::unique_ptr<KWalletFreedesktopService,
std::default_delete<KWalletFreedesktopService> >::~unique_ptr()
(/home/nico/kde-qtdev/usr/bin/ksecretd+0x455936) (BuildId:
e48cea6af469c5e121eedaf01d039e0091c7c733)
    #11 0x00000042eee6 in KSecretD::~KSecretD()
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/ksecretd.cpp:177
    #12 0x000000424083 in main
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/main.cpp:208
    #13 0x7f4c2662b2fa in __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58

previously allocated by thread T0 here:
    #0 0x7f4c2d92273b in operator new(unsigned long)
../../../../libsanitizer/asan/asan_new_delete.cpp:86
    #1 0x7f4c2c81e7b2 in QCA::Botan::Builtin_Modules::allocators() const
/home/nico/kde-qtdev/src/qca/src/botantools/botan/modules.cpp:205
    #2 0x7f4c2c807466 in QCA::Botan::Library_State::load(QCA::Botan::Modules&)
/home/nico/kde-qtdev/src/qca/src/botantools/botan/libstate.cpp:393
    #3 0x7f4c2c5e0f71 in QCA::botan_init(int, bool)
/home/nico/kde-qtdev/src/qca/src/qca_tools.cpp:81
    #4 0x7f4c2c68585f in QCA::init(QCA::MemoryMode, int)
/home/nico/kde-qtdev/src/qca/src/qca_core.cpp:216
    #5 0x7f4c2c68d86e in QCA::Initializer::Initializer(QCA::MemoryMode, int)
/home/nico/kde-qtdev/src/qca/src/qca_core.cpp:892
    #6 0x0000004b9c8f in
KWalletFreedesktopService::KWalletFreedesktopService(KSecretD*)
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/kwalletfreedesktopservice.cpp:141
    #7 0x00000042e72b in KSecretD::KSecretD()
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/ksecretd.cpp:166
    #8 0x000000423afe in main
/home/nico/kde-qtdev/src/kwallet/src/runtime/ksecretd/main.cpp:193
    #9 0x7f4c2662b2fa in __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to