| Summary: | Random crashes on glibc double-free when displaying messages | ||
|---|---|---|---|
| Product: | [Unmaintained] kmail | Reporter: | Björn Fahller <bjorn> |
| Component: | general | Assignee: | kdepim bugs <pim-bugs-null> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | crash | CC: | r3m1.benoit |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Gentoo Packages | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed In: | ||
| Sentry Crash Report: | |||
|
Description
Björn Fahller
2005-12-09 01:08:02 UTC
Caught this one with a non-stripped build.
The original crash:
#0 0xffffe410 in ?? ()
#1 0xbfd3cfe8 in ?? ()
#2 0x00000006 in ?? ()
#3 0x00001eb5 in ?? ()
#4 0xb5824651 in raise () from /lib/tls/libc.so.6
#5 0xb582615c in abort () from /lib/tls/libc.so.6
#6 0xb585735b in __fsetlocking () from /lib/tls/libc.so.6
#7 0xb5860c99 in mallopt () from /lib/tls/libc.so.6
#8 0xb585fa0d in mallopt () from /lib/tls/libc.so.6
#9 0xb585e7c9 in free () from /lib/tls/libc.so.6
#10 0xb59e23f1 in operator delete ()
from /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libstdc++.so.6
#11 0xb7b91e93 in __gnu_cxx::new_allocator<DwFieldBody*>::deallocate (this=0xbfd3d380,
__p=0x85ed428) at new_allocator.h:86
#12 0xb7b9185b in std::_Vector_base<DwFieldBody*, std::allocator<DwFieldBody*> >::_M_deallocate (this=0xbfd3d380, __p=0x85ed428, __n=1) at stl_vector.h:117
#13 0xb7b90d46 in ~_Vector_base (this=0xbfd3d380) at stl_vector.h:106
#14 0xb7b8ff60 in ~vector (this=0xbfd3d380) at stl_vector.h:256
#15 0xb7b85674 in KMMessage::headerFields (this=0x8596dc8, field=@0xbfd3d3d0)
at kmmessage.cpp:2187
#16 0xb7b83b00 in KMMessage::cc (this=0x8596dc8) at kmmessage.cpp:1831
#17 0xb7d54eb1 in KMail::FancyHeaderStyle::format (this=0x83fa448, message=0x8596dc8,
strategy=0x805e7d0, vCardName=@0xbfd42b40, printing=false) at headerstyle.cpp:630
#18 0xb7c569aa in KMReaderWin::writeMsgHeader (this=0x836f670, aMsg=0x8596dc8,
hasVCard=false) at kmreaderwin.cpp:1646
#19 0xb7c55cb9 in KMReaderWin::parseMsg (this=0x836f670, aMsg=0x8596dc8)
at kmreaderwin.cpp:1529
#20 0xb7c55711 in KMReaderWin::displayMessage (this=0x836f670) at kmreaderwin.cpp:1468
#21 0xb7c551db in KMReaderWin::updateReaderWin (this=0x836f670) at kmreaderwin.cpp:1404
#22 0xb7c52136 in KMReaderWin::update (this=0x836f670, observable=0x8596de4)
at kmreaderwin.cpp:835
#23 0xb7ddcfd8 in KMail::ISubject::notify (this=0x8596de4) at isubject.cpp:35
#24 0xb7b8c6cd in KMMessage::updateBodyPart (this=0x8596dc8, partSpecifier=
{static null = {static null = <same as static member of an already seen type>, d = 0x804e070, static shared_null = 0x804e070}, d = 0x8548dd0, static shared_null = 0x804e070},
data=@0x85edd7c) at kmmessage.cpp:4050
#25 0xb7dc04b5 in KMail::ImapJob::slotGetMessageResult (this=0x85f4320, job=0x85edb98)
at imapjob.cpp:414
#26 0xb7dc16c6 in KMail::ImapJob::qt_invoke (this=0x85f4320, _id=2, _o=0xbfd43100)
at imapjob.moc:126
#27 0xb5fe5934 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#28 0xb6be3fed in KIO::Job::result () from /usr/kde/3.5/lib/libkio.so.4
#29 0x085edb98 in ?? ()
#30 0x085eddd0 in ?? ()
#31 0xbfd43100 in ?? ()
#32 0xffffffff in ?? ()
#33 0xb64693e4 in TID_QUType_enum () from /usr/qt/3/lib/libqt-mt.so.3
#34 0xb5911820 in __after_morecore_hook () from /lib/tls/libc.so.6
#35 0x085eec68 in ?? ()
#36 0xb5a04c9c in ?? () from /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libstdc++.so.6
#37 0xb585f2e1 in mallopt () from /lib/tls/libc.so.6
This seems freaky. Line 2187 in kmmessage.cpp it the return line in headerFields, and the destroyed object is a local std::vector of ptrs. That vector should only be free'd once, and that is on the return line.
(Un)fortunately, it is very easy for me to reproduce. All I have to do is to click on my work imap server. :-(
_
/Bjorn.
See http://bugs.kde.org/show_bug.cgi?id=111115 Have you used -fvisibility? No answer from reporter, so assuming this is the fvisibility problem *** This bug has been marked as a duplicate of 111115 *** Git commit a4960b99578620374ac2a1086a0c94f415b798eb by Rémi Benoit. Committed on 01/05/2014 at 16:30. Pushed by remibenoit into branch 'master'. Implement Note serializer for Akonadi backend M +1 -0 src/akonadi/CMakeLists.txt M +15 -6 src/akonadi/akonadiserializer.cpp M +1 -1 tests/testlib/CMakeLists.txt M +1 -1 tests/units/akonadi/CMakeLists.txt M +133 -0 tests/units/akonadi/akonadiserializertest.cpp http://commits.kde.org/zanshin/a4960b99578620374ac2a1086a0c94f415b798eb *** This bug has been marked as a duplicate of bug 111115 *** |