Bug 121556 - Kpdf kpart make Konqueror crash when viewing some embedded Pdf
Summary: Kpdf kpart make Konqueror crash when viewing some embedded Pdf
Alias: None
Product: kpdf
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Albert Astals Cid
: 122200 (view as bug list)
Depends on:
Reported: 2006-02-07 18:57 UTC by Francesco Locunto
Modified: 2006-02-18 12:53 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:

Crash backtrace (4.05 KB, text/plain)
2006-02-07 19:01 UTC, Francesco Locunto

Note You need to log in before you can comment on or make changes to this bug.
Description Francesco Locunto 2006-02-07 18:57:39 UTC
Version:            (using KDE KDE 3.5.0)
Installed from:    SuSE RPMs
OS:                Linux

At this web site:


Konqueror embeds Kpdf to view the pdf file. All seems ok, but if I try to go back with Konqueror "back" button for example, or I try to navigate with the links on the left side of the page, Konqueror crashs!

This crash happens not only on this page, but also with other pages of www.gazzettaufficiale.it containing embedded pdf files.

I'll post the crash backtrace shortly.
Comment 1 Francesco Locunto 2006-02-07 19:01:03 UTC
Created attachment 14599 [details]
Crash backtrace
Comment 2 Albert Astals Cid 2006-02-08 23:20:19 UTC
I'd say the problem here is that konqueror removes things from kpdf foot too late in the process of "destroying" the html page to load the other and kpdf as problems with that, what do you konq guys think?

Valgrindizin seems the "ui" of kpdf got destroyed before than the part itself

==10759== Invalid read of size 8
==10759==    at 0x1A194F92: KPDFDocument::closeDocument() (document.cpp:252)
==10759==    by 0x1A19523C: KPDFDocument::~KPDFDocument() (document.cpp:127)
==10759==    by 0x1A09886F: KPDF::Part::~Part() (part.cpp:294)
==10759==    by 0x1205E6BA: KParts::Part::slotWidgetDestroyed() (in /home/kde35/instalado/lib/libkparts.so.2.1.0)
==10759==    by 0x1205E85C: KParts::Part::qt_invoke(int, QUObject*) (in /home/kde35/instalado/lib/libkparts.so.2.1.0)
==10759==    by 0x1205EAD9: KParts::ReadOnlyPart::qt_invoke(int, QUObject*) (in /home/kde35/instalado/lib/libkparts.so.2.1.0)
==10759==    by 0x1A09D752: KPDF::Part::qt_invoke(int, QUObject*) (part.moc:214)
==10759==    by 0x13E36878: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/libqt-mt.so.3.3.4)
==10759==    by 0x13E372DF: QObject::activate_signal(int) (in /usr/lib/libqt-mt.so.3.3.4)
==10759==    by 0x14172315: QObject::destroyed() (in /usr/lib/libqt-mt.so.3.3.4)
==10759==    by 0x13E352CC: QObject::~QObject() (in /usr/lib/libqt-mt.so.3.3.4)
==10759==    by 0x13E6D04D: QWidget::~QWidget() (in /usr/lib/libqt-mt.so.3.3.4)
==10759==  Address 0x19933B10 is 248 bytes inside a block of size 264 free'd
==10759==    at 0x11B1DCCC: operator delete(void*) (vg_replace_malloc.c:246)
==10759==    by 0x1A1A8EB5: PageView::~PageView() (pageview.cpp:175)
==10759==    by 0x13E6CF87: QWidget::~QWidget() (in /usr/lib/libqt-mt.so.3.3.4)
==10759==    by 0x11F053D2: QFrame::~QFrame() (qframe.h:48)
==10759==    by 0x13F6C888: QSplitter::~QSplitter() (in /usr/lib/libqt-mt.so.3.3.4)
==10759==    by 0x13E338F4: QObject::event(QEvent*) (in /usr/lib/libqt-mt.so.3.3.4)
==10759==    by 0x13E6E36A: QWidget::event(QEvent*) (in /usr/lib/libqt-mt.so.3.3.4)
==10759==    by 0x13F6DC4E: QSplitter::event(QEvent*) (in /usr/lib/libqt-mt.so.3.3.4)
==10759==    by 0x13DD11E3: QApplication::internalNotify(QObject*, QEvent*) (in /usr/lib/libqt-mt.so.3.3.4)
==10759==    by 0x13DD1F3F: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libqt-mt.so.3.3.4)
==10759==    by 0x1309E9E0: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:550)
==10759==    by 0x11CC698B: QApplication::sendEvent(QObject*, QEvent*) (qapplication.h:491)
Comment 3 Albert Astals Cid 2006-02-18 11:34:43 UTC
*** Bug 122200 has been marked as a duplicate of this bug. ***
Comment 4 Albert Astals Cid 2006-02-18 12:53:12 UTC
SVN commit 510876 by aacid:

Reoder some deletes, add some removeObserver and use some magic QGuardPtr so that when embedded on konqueror and changing page it does crash, i still think that konqueror should not delete kpart created widgets behind its back, but probably it's easier to change kpdf than all the other code.
BUGS: 121556

 M  +16 -11    part.cpp  
 M  +7 -3      part.h  
 M  +6 -0      ui/minibar.cpp  
 M  +2 -0      ui/minibar.h  
 M  +2 -1      ui/pageview.cpp  
 M  +2 -1      ui/thumbnaillist.cpp  
 M  +6 -1      ui/toc.cpp  
 M  +2 -1      ui/toc.h