Summary: | Recurring Crash on particular 404 url in embedded HTML viewer | ||
---|---|---|---|
Product: | [Applications] akregator | Reporter: | Ned Boony <crazyned> |
Component: | general | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | avuton, kde, kdebugs, kde_bugzilla_2, klan, latency, mail, marsup, matthew.flaschen, mg, michal, moltonel |
Priority: | NOR | ||
Version: | 1.2.1 | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | fix |
Description
Ned Boony
2006-05-05 19:26:59 UTC
Confirmed, seems that Akregator crashes on HTTP 404. Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1". `system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols. [Thread debugging using libthread_db enabled] [New Thread -1243806016 (LWP 8235)] [KCrash handler] #6 0xb77f1594 in QGuardedPtr<khtml::RenderPart>::operator khtml::RenderPart* (this=0x28) at qguardedptr.h:117 #7 0xb77e029e in KHTMLPart::slotFinished (this=0x82793f8, job=0x83f1a18) at khtml_part.cpp:1847 #8 0xb77ed729 in KHTMLPart::qt_invoke (this=0x82793f8, _id=19, _o=0xbfe38c84) at khtml_part.moc:504 #9 0xb5ac7c7c in Akregator::Viewer::qt_invoke (this=0x82793f8, _id=19, _o=0xbfe38c84) at viewer.moc:201 #10 0xb5acd79c in Akregator::ArticleViewer::qt_invoke (this=0x82793f8, _id=19, _o=0xbfe38c84) at articleviewer.moc:136 #11 0xb65a4a56 in QObject::activate_signal () from /usr/share/qt3/lib/libqt-mt.so.3 #12 0xb71e3b0a in KIO::Job::result (this=0x83f1a18, t0=0x83f1a18) at jobclasses.moc:162 #13 0xb71e3baa in KIO::Job::emitResult (this=0x83f1a18) at job.cpp:226 #14 0xb71e66f9 in KIO::SimpleJob::slotFinished (this=0x83f1a18) at job.cpp:574 #15 0xb71f220e in KIO::TransferJob::slotFinished (this=0x83f1a18) at job.cpp:944 #16 0xb71e6f9a in KIO::TransferJob::qt_invoke (this=0x83f1a18, _id=17, _o=0xbfe3900c) at jobclasses.moc:1071 #17 0xb65a4929 in QObject::activate_signal () from /usr/share/qt3/lib/libqt-mt.so.3 #18 0xb65a53c4 in QObject::activate_signal () from /usr/share/qt3/lib/libqt-mt.so.3 #19 0xb71d2bfe in KIO::SlaveInterface::finished (this=0x95d19b8) at slaveinterface.moc:226 #20 0xb71d49a0 in KIO::SlaveInterface::dispatch (this=0x95d19b8, _cmd=104, rawdata=@0xbfe39210) at slaveinterface.cpp:243 #21 0xb71d42ac in KIO::SlaveInterface::dispatch (this=0x95d19b8) at slaveinterface.cpp:173 #22 0xb71d0776 in KIO::Slave::gotInput (this=0x95d19b8) at slave.cpp:300 #23 0xb71d0be9 in KIO::Slave::qt_invoke (this=0x95d19b8, _id=4, _o=0xbfe39358) at slave.moc:113 #24 0xb65a4929 in QObject::activate_signal () from /usr/share/qt3/lib/libqt-mt.so.3 #25 0xb65a5238 in QObject::activate_signal () from /usr/share/qt3/lib/libqt-mt.so.3 #26 0xb6904c67 in QSocketNotifier::activated () from /usr/share/qt3/lib/libqt-mt.so.3 #27 0xb65c4faa in QSocketNotifier::event () from /usr/share/qt3/lib/libqt-mt.so.3 #28 0xb653bf80 in QApplication::internalNotify () from /usr/share/qt3/lib/libqt-mt.so.3 #29 0xb653c172 in QApplication::notify () from /usr/share/qt3/lib/libqt-mt.so.3 #30 0xb6c052d2 in KApplication::notify (this=0xbfe39934, receiver=0x928b800, event=0xbfe396b0) at kapplication.cpp:550 #31 0xb77c3c1c in QApplication::sendEvent (receiver=0x928b800, event=0xbfe396b0) at qapplication.h:491 #32 0xb652dacb in QEventLoop::activateSocketNotifiers () from /usr/share/qt3/lib/libqt-mt.so.3 #33 0xb64e0a60 in QEventLoop::processEvents () from /usr/share/qt3/lib/libqt-mt.so.3 #34 0xb6553cfb in QEventLoop::enterLoop () from /usr/share/qt3/lib/libqt-mt.so.3 #35 0xb6553c1e in QEventLoop::exec () from /usr/share/qt3/lib/libqt-mt.so.3 #36 0xb653ac13 in QApplication::exec () from /usr/share/qt3/lib/libqt-mt.so.3 #37 0x080515f0 in main (argc=7, argv=0xbfe39ae4) at main.cpp:110 SVN commit 539530 by osterfeld: I don't see a reason to disable javascript in the article viewer. This fixes a crash when an error is returned (e.g. 404), which occurs only when JS is disabled. I can't reproduce it in konqueror, so I assume our current Viewer classes misuse the KHTMLPart interface too much. BUG: 126812 M +2 -1 ChangeLog M +1 -1 src/viewer.cpp --- branches/KDE/3.5/kdepim/akregator/ChangeLog #539529:539530 @@ -6,7 +6,8 @@ ----------------------------- New features: - + 2006/05/10 fix crash when using "Load the full website when reading articles" and an error (e.g. 404) + is returned 2006/05/01 add author information to article header (in the article pane only) -fo Bug fixes: --- branches/KDE/3.5/kdepim/akregator/src/viewer.cpp #539529:539530 @@ -323,7 +323,7 @@ void Viewer::setSafeMode() { - setJScriptEnabled(false); + //setJScriptEnabled(false); setJavaEnabled(false); setMetaRefreshEnabled(false); setPluginsEnabled(false); *** Bug 129480 has been marked as a duplicate of this bug. *** *** Bug 124465 has been marked as a duplicate of this bug. *** *** Bug 130293 has been marked as a duplicate of this bug. *** *** Bug 131009 has been marked as a duplicate of this bug. *** This happens again as JS is disabled again since 3.5.5. *** Bug 136213 has been marked as a duplicate of this bug. *** *** Bug 137372 has been marked as a duplicate of this bug. *** *** Bug 138756 has been marked as a duplicate of this bug. *** Still crashes in 1.2.6/kde 3.5.6 :( *** Bug 141286 has been marked as a duplicate of this bug. *** Also crashes on this link: http://www.tpmmuckraker.com/archives/002539.php *** Bug 141893 has been marked as a duplicate of this bug. *** I was able to reproduce this bug in a simple test app only containing a KHTMLPart with JS disabled, calling openURL() with any URL that triggers a 404 error. The following patch fixes the issue. Index: khtml_part.cpp =================================================================== --- khtml_part.cpp (revision 636711) +++ khtml_part.cpp (working copy) @@ -1843,7 +1843,7 @@ } KIO::TransferJob *tjob = ::qt_cast<KIO::TransferJob*>(job); if (tjob && tjob->isErrorPage()) { - khtml::RenderPart *renderPart = d->m_frame->m_frame; + khtml::RenderPart* renderPart = d->m_frame ? d->m_frame->m_frame : 0; if (renderPart) { HTMLObjectElementImpl* elt = static_cast<HTMLObjectElementImpl *>(renderPart->element()); if (!elt) Created attachment 19802 [details]
fix
Now as attachment, with minor changes (s/0/0L, put the * so that it's
consistent with the style in the file)
SVN commit 636988 by osterfeld: Check for m_frame == 0 here, which can occur when JS is disabled BUG: 126812 M +1 -1 khtml_part.cpp --- branches/KDE/3.5/kdelibs/khtml/khtml_part.cpp #636987:636988 @@ -1843,7 +1843,7 @@ } KIO::TransferJob *tjob = ::qt_cast<KIO::TransferJob*>(job); if (tjob && tjob->isErrorPage()) { - khtml::RenderPart *renderPart = d->m_frame->m_frame; + khtml::RenderPart *renderPart = d->m_frame ? d->m_frame->m_frame : 0L; if (renderPart) { HTMLObjectElementImpl* elt = static_cast<HTMLObjectElementImpl *>(renderPart->element()); if (!elt) SVN commit 636991 by osterfeld: forwardport: Check for m_frame == 0 here, which can occur when JS is disabled CCBUG: 126812 M +1 -1 khtml_part.cpp --- trunk/KDE/kdelibs/khtml/khtml_part.cpp #636990:636991 @@ -1847,7 +1847,7 @@ } KIO::TransferJob *tjob = ::qobject_cast<KIO::TransferJob*>(job); if (tjob && tjob->isErrorPage()) { - khtml::RenderPart *renderPart = d->m_frame->m_frame; + khtml::RenderPart *renderPart = d->frame ? d->m_frame->m_frame : 0L; if (renderPart) { HTMLObjectElementImpl* elt = static_cast<HTMLObjectElementImpl *>(renderPart->element()); if (!elt) *** Bug 141210 has been marked as a duplicate of this bug. *** *** Bug 145351 has been marked as a duplicate of this bug. *** *** Bug 145662 has been marked as a duplicate of this bug. *** |