]> git.pld-linux.org Git - packages/kdelibs.git/blob - dcopobject-destruct-crash.patch
- release 26
[packages/kdelibs.git] / dcopobject-destruct-crash.patch
1 there appeared some kind of leak or memory overwrite, or double destruct, can't
2 track down where it came from, only thing done (to my knowledge) was to rebuild
3 kde packages due newer dependencies in distro. maybe gcc overoptimizes, but
4 rebuild with gcc 4.4.2 did not help.
5
6 crash happens when kmail send mail window is destructed (you hit send mail
7 button)
8
9 Program received signal SIGSEGV, Segmentation fault.
10 0x00007ffff6dba027 in DCOPObject::~DCOPObject (this=0xdf03b8, __in_chrg=<value optimized out>) at dcopobject.cpp:81
11 81          if ( d->m_signalConnections > 0 && client )
12 (gdb) bt
13 #0  0x00007ffff6dba027 in DCOPObject::~DCOPObject (this=0xdf03b8, __in_chrg=<value optimized out>) at dcopobject.cpp:81
14 #1  0x00007ffff77c6a6b in KMComposeWin::~KMComposeWin (this=0xdefd30, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at kmcomposewin.cpp:490
15 #2  0x00007ffff66b911a in QObject::event(QEvent*) () from /usr/lib64/libqt-mt.so.3
16 #3  0x00007ffff66ee013 in QWidget::event(QEvent*) () from /usr/lib64/libqt-mt.so.3
17 #4  0x00007ffff665a865 in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib64/libqt-mt.so.3
18 #5  0x00007ffff665b96e in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libqt-mt.so.3
19 #6  0x00007ffff70aaf28 in KApplication::notify (this=0x7fffffffda10, receiver=0xdefd30, event=0xe72500) at kapplication.cpp:550
20 #7  0x00007ffff665c263 in QApplication::sendPostedEvents(QObject*, int) () from /usr/lib64/libqt-mt.so.3
21 #8  0x00007ffff660acad in QEventLoop::processEvents(unsigned int) () from /usr/lib64/libqt-mt.so.3
22 #9  0x00007ffff6670ba9 in QEventLoop::enterLoop() () from /usr/lib64/libqt-mt.so.3
23 #10 0x00007ffff6670a32 in QEventLoop::exec() () from /usr/lib64/libqt-mt.so.3
24 #11 0x00000000004028cc in main (argc=3, argv=<value optimized out>) at main.cpp:110
25 (gdb) p d
26 $1 = (DCOPObject::DCOPObjectPrivate *) 0x0
27 (gdb) p client
28 $2 = <value optimized out>
29 (gdb) l
30 76      }
31 77
32 78      DCOPObject::~DCOPObject()
33 79      {
34 80          DCOPClient *client = DCOPClient::mainClient();
35 81          if ( d->m_signalConnections > 0 && client )
36 82               client->disconnectDCOPSignal( 0, 0, 0, objId(), 0 );
37 83
38 84          objMap()->remove(ident);
39 85          delete d;
40 (gdb)
41
42 --- kdelibs-3.5.10/dcop/dcopobject.cpp~ 2005-09-10 11:27:23.000000000 +0300
43 +++ kdelibs-3.5.10/dcop/dcopobject.cpp  2010-01-30 07:56:50.818689543 +0200
44 @@ -78,7 +78,7 @@
45  DCOPObject::~DCOPObject()
46  {
47      DCOPClient *client = DCOPClient::mainClient();
48 -    if ( d->m_signalConnections > 0 && client )
49 +    if (d && d->m_signalConnections > 0 && client )
50           client->disconnectDCOPSignal( 0, 0, 0, objId(), 0 );
51  
52      objMap()->remove(ident);
This page took 0.03477 seconds and 3 git commands to generate.