| Summary: | Konqueror crash after click on a link | ||
|---|---|---|---|
| Product: | [Applications] konqueror | Reporter: | Konrad Twardowski <twardowski> |
| Component: | khtml renderer | Assignee: | Konqueror Bugs <konqueror-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | benoit.amiaux, enleth, jos |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Compiled Sources | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Konrad Twardowski
2005-01-15 19:21:03 UTC
Confirmed. My backtrace looks exactly the same. Seems to work fine now with CVS-HEAD. Confirm? For me konqi 3.4.0 crashes, bt looks same. Valgrind log then? ==30947== Invalid read of size 4 ==30947== at 0x1E253685: collectHorizontalBoxCoordinates(khtml::InlineBox*, QValueVector<QPoint>&, bool, int) (render_inline.cpp:497) ==30947== by 0x1E2536F9: collectHorizontalBoxCoordinates(khtml::InlineBox*, QValueVector<QPoint>&, bool, int) (render_inline.cpp:508) ==30947== by 0x1E253F24: khtml::RenderInline::paintOutlines(QPainter*, int, int) (render_inline.cpp:632) ==30947== by 0x1E2543E7: khtml::RenderInline::paint(khtml::RenderObject::PaintInfo&, int, int) (render_inline.cpp:276) ==30947== by 0x1E24DE34: khtml::RenderBlock::paintObject(khtml::RenderObject::PaintInfo&, int, int, bool) (render_block.cpp:1307) ==30947== by 0x1E24E0D3: khtml::RenderBlock::paint(khtml::RenderObject::PaintInfo&, int, int) (render_block.cpp:1263) ==30947== by 0x1E24DE34: khtml::RenderBlock::paintObject(khtml::RenderObject::PaintInfo&, int, int, bool) (render_block.cpp:1307) ==30947== by 0x1E24E0D3: khtml::RenderBlock::paint(khtml::RenderObject::PaintInfo&, int, int) (render_block.cpp:1263) ==30947== by 0x1E24DE34: khtml::RenderBlock::paintObject(khtml::RenderObject::PaintInfo&, int, int, bool) (render_block.cpp:1307) ==30947== by 0x1E24E0D3: khtml::RenderBlock::paint(khtml::RenderObject::PaintInfo&, int, int) (render_block.cpp:1263) ==30947== by 0x1E24A19B: khtml::RenderBlock::paintFloats(khtml::RenderObject::PaintInfo&, int, int, bool) (render_block.cpp:1353) ==30947== by 0x1E24DFEA: khtml::RenderBlock::paintObject(khtml::RenderObject::PaintInfo&, int, int, bool) (render_block.cpp:1321) ==30947== by 0x1E24E0D3: khtml::RenderBlock::paint(khtml::RenderObject::PaintInfo&, int, int) (render_block.cpp:1263) ==30947== by 0x1E24DE34: khtml::RenderBlock::paintObject(khtml::RenderObject::PaintInfo&, int, int, bool) (render_block.cpp:1307) ==30947== by 0x1E24E0D3: khtml::RenderBlock::paint(khtml::RenderObject::PaintInfo&, int, int) (render_block.cpp:1263) ==30947== by 0x1E24DE34: khtml::RenderBlock::paintObject(khtml::RenderObject::PaintInfo&, int, int, bool) (render_block.cpp:1307) ==30947== by 0x1E24E0D3: khtml::RenderBlock::paint(khtml::RenderObject::PaintInfo&, int, int) (render_block.cpp:1263) ==30947== by 0x1E273C49: khtml::RenderLayer::paintLayer(khtml::RenderLayer*, QPainter*, QRect const&, bool) (render_layer.h:137) ==30947== by 0x1E273B51: khtml::RenderLayer::paintLayer(khtml::RenderLayer*, QPainter*, QRect const&, bool) (render_layer.cpp:810) ==30947== by 0x1E273E7A: khtml::RenderLayer::paint(QPainter*, QRect const&, bool) (render_layer.cpp:693) ==30947== by 0x1E19C345: KHTMLView::drawContents(QPainter*, int, int, int, int) (dom_nodeimpl.h:280) ==30947== by 0x1C8BCBCF: QScrollView::drawContentsOffset(QPainter*, int, int, int, int, int, int) (qscrollview.cpp:2334) ==30947== by 0x1C8BB441: QScrollView::viewportPaintEvent(QPaintEvent*) (qscrollview.cpp:1693) ==30947== by 0x1C8BAD18: QScrollView::eventFilter(QObject*, QEvent*) (qscrollview.cpp:1490) ==30947== by 0x1E193B44: KHTMLView::eventFilter(QObject*, QEvent*) (khtmlview.cpp:1904) ==30947== by 0x1C7941BB: QObject::activate_filters(QEvent*) (qobject.cpp:902) ==30947== by 0x1C79402D: QObject::event(QEvent*) (qobject.cpp:735) ==30947== by 0x1C7CE9DE: QWidget::event(QEvent*) (qwidget.cpp:4655) ==30947== by 0x1C7339D2: QApplication::internalNotify(QObject*, QEvent*) (qapplication.cpp:2635) ==30947== by 0x1C733602: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:2523) ==30947== by 0x1C2367F9: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:549) ==30947== by 0x1C6C9396: QApplication::sendEvent(QObject*, QEvent*) (qapplication.h:491) ==30947== by 0x1C6FD2A4: QWidget::repaint(QRegion const&, bool) (qwidget_x11.cpp:1626) ==30947== by 0x1C7348C6: QApplication::sendPostedEvents(QObject*, int) (qapplication.cpp:3258) ==30947== by 0x1C734672: QApplication::sendPostedEvents() (qapplication.cpp:3172) ==30947== by 0x1C6DA6DA: QEventLoop::processEvents(unsigned) (qeventloop_x11.cpp:202) ==30947== by 0x1C747C0D: QEventLoop::enterLoop() (qeventloop.cpp:198) ==30947== by 0x1C747B29: QEventLoop::exec() (qeventloop.cpp:145) ==30947== by 0x1C733B52: QApplication::exec() (qapplication.cpp:2758) ==30947== by 0x1B955D4D: kdemain (konq_main.cc:206) ==30947== by 0x80486F7: main (konqueror.la.cc:2) ==30947== Address 0xC is not stack'd, malloc'd or (recently) free'd *** Bug 100346 has been marked as a duplicate of this bug. *** CVS commit by ggarand:
Don't delete this's placeholder box on layout, parent will take care of it.
Fix crash in dynamic pop-ups.
BUG: 97085
M +2 -0 render_box.cpp 1.256
M +0 -1 render_flow.cpp 1.362
--- kdelibs/khtml/rendering/render_box.cpp #1.255:1.256
@@ -201,4 +201,6 @@ void RenderBox::detach()
InlineBox* RenderBox::createInlineBox(bool /*makePlaceHolderBox*/, bool /*isRootLineBox*/)
{
+ if (m_placeHolderBox)
+ m_placeHolderBox->detach(renderArena());
return (m_placeHolderBox = new (renderArena()) InlineBox(this));
}
--- kdelibs/khtml/rendering/render_flow.cpp #1.361:1.362
@@ -141,5 +141,4 @@ void RenderFlow::deleteInlineBoxes(Rende
m_lastLineBox = 0;
}
- RenderBox::deleteInlineBoxes(arena);
}
CVS commit by ggarand:
backport crash fix
CCBUG: 97085
M +2 -0 render_box.cpp 1.255.2.1
M +0 -1 render_flow.cpp 1.361.2.1
--- kdelibs/khtml/rendering/render_box.cpp #1.255:1.255.2.1
@@ -201,4 +201,6 @@ void RenderBox::detach()
InlineBox* RenderBox::createInlineBox(bool /*makePlaceHolderBox*/, bool /*isRootLineBox*/)
{
+ if (m_placeHolderBox)
+ m_placeHolderBox->detach(renderArena());
return (m_placeHolderBox = new (renderArena()) InlineBox(this));
}
--- kdelibs/khtml/rendering/render_flow.cpp #1.361:1.361.2.1
@@ -141,5 +141,4 @@ void RenderFlow::deleteInlineBoxes(Rende
m_lastLineBox = 0;
}
- RenderBox::deleteInlineBoxes(arena);
}
*** Bug 102729 has been marked as a duplicate of this bug. *** *** Bug 105287 has been marked as a duplicate of this bug. *** |