[Okular-devel] [Bug 243434] crash when painting (PagePainter::scalePixmapOnImage with no backbuffer)

maninred at alice-dsl.net maninred at alice-dsl.net
Mon Dec 27 17:12:45 CET 2010


https://bugs.kde.org/show_bug.cgi?id=243434





--- Comment #25 from  <maninred alice-dsl net>  2010-12-27 17:12:41 ---
Here is the valgrind output:

==29899== Memcheck, a memory error detector
==29899== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
==29899== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info
==29899== Command: okular /Downloads/tools2.pdf/
==29899== 
==29899== 
==29899== HEAP SUMMARY:
==29899==     in use at exit: 612,519 bytes in 8,192 blocks
==29899==   total heap usage: 289,617 allocs, 281,425 frees, 73,900,156 bytes
allocated
==29899== 
==29899== LEAK SUMMARY:
==29899==    definitely lost: 3,585 bytes in 15 blocks
==29899==    indirectly lost: 352 bytes in 11 blocks
==29899==      possibly lost: 402,996 bytes in 5,996 blocks
==29899==    still reachable: 205,586 bytes in 2,170 blocks
==29899==         suppressed: 0 bytes in 0 blocks
==29899== Rerun with --leak-check=full to see details of leaked memory
==29899== 
==29899== For counts of detected and suppressed errors, rerun with: -v
==29899== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 106 from 11)
user at linux-3zjc:~> valgrind okular /Downloads/tools2.pdf
==30037== Memcheck, a memory error detector
==30037== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
==30037== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info
==30037== Command: okular /Downloads/tools2.pdf
==30037== 
==30037== Conditional jump or move depends on uninitialised value(s)
==30037==    at 0x5E796AA: PtsToRegion(int, int, _POINTBLOCK*, QRegionPrivate*)
(qregion.cpp:3512)
==30037==    by 0x5E7A0A8: PolygonRegion(QPoint const*, int, int)
(qregion.cpp:3735)
==30037==    by 0x5E7A44D: QRegion::QRegion(QPolygon const&, Qt::FillRule)
(qregion.cpp:3856)
==30037==    by 0x5EE9825: QX11PaintEngine::updateState(QPaintEngineState
const&) (qpaintengine_x11.cpp:1092)
==30037==    by 0x5E28792: QPainterPrivate::updateStateImpl(QPainterState*)
(qpainter.cpp:906)
==30037==    by 0x5E2886F: QPainterPrivate::updateState(QPainterState*)
(qpainter.cpp:934)
==30037==    by 0x5E37CAE: QPainter::setClipRegion(QRegion const&,
Qt::ClipOperation) (qpainter.cpp:2853)
==30037==    by 0xF1EE9AD: Oxygen::SunkenFrameShadow::paintEvent(QPaintEvent*)
(oxygenframeshadow.cpp:464)
==30037==    by 0x5D3A459: QWidget::event(QEvent*) (qwidget.cpp:8346)
==30037==    by 0xF1AF7DC: Oxygen::FrameShadowBase::event(QEvent*)
(oxygenframeshadow.cpp:282)
==30037==    by 0x5CE8CD3: QApplicationPrivate::notify_helper(QObject*,
QEvent*) (qapplication.cpp:4445)
==30037==    by 0x5CF11C9: QApplication::notify(QObject*, QEvent*)
(qapplication.cpp:4324)
==30037==                                                                       
==30037== Conditional jump or move depends on uninitialised value(s)            
==30037==    at 0x5E796AA: PtsToRegion(int, int, _POINTBLOCK*, QRegionPrivate*)
(qregion.cpp:3512)                                             
==30037==    by 0x5E7A0A8: PolygonRegion(QPoint const*, int, int)
(qregion.cpp:3735)                                                           
==30037==    by 0x5E7A44D: QRegion::QRegion(QPolygon const&, Qt::FillRule)
(qregion.cpp:3856)                                                  
==30037==    by 0x5EE9ABF: QX11PaintEngine::updateState(QPaintEngineState
const&) (qpaintengine_x11.cpp:1110)                                  
==30037==    by 0x5E28792: QPainterPrivate::updateStateImpl(QPainterState*)
(qpainter.cpp:906)                                                 
==30037==    by 0x5E2886F: QPainterPrivate::updateState(QPainterState*)
(qpainter.cpp:934)
==30037==    by 0x5E37CAE: QPainter::setClipRegion(QRegion const&,
Qt::ClipOperation) (qpainter.cpp:2853)
==30037==    by 0xF1EE9AD: Oxygen::SunkenFrameShadow::paintEvent(QPaintEvent*)
(oxygenframeshadow.cpp:464)
==30037==    by 0x5D3A459: QWidget::event(QEvent*) (qwidget.cpp:8346)
==30037==    by 0xF1AF7DC: Oxygen::FrameShadowBase::event(QEvent*)
(oxygenframeshadow.cpp:282)
==30037==    by 0x5CE8CD3: QApplicationPrivate::notify_helper(QObject*,
QEvent*) (qapplication.cpp:4445)
==30037==    by 0x5CF11C9: QApplication::notify(QObject*, QEvent*)
(qapplication.cpp:4324)
==30037== 
okular(30037)/kio (KDirWatch) KDirWatchPrivate::removeEntry: doesn't know
"/Downloads/tools2.pdf" 
okular(30037)/kio (KDirWatch) KDirWatchPrivate::removeEntry: doesn't know
"/Downloads" 
==30037== Conditional jump or move depends on uninitialised value(s)
==30037==    at 0x156C4BFF: PageView::resizeEvent(QResizeEvent*)
(pageview.cpp:1241)
==30037==    by 0x5D3A48D: QWidget::event(QEvent*) (qwidget.cpp:8354)
==30037==    by 0x60E7245: QFrame::event(QEvent*) (qframe.cpp:557)
==30037==    by 0x156C3D1C: PageView::viewportEvent(QEvent*)
(pageview.cpp:2292)
==30037==    by 0x6DBAFB6:
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)
(qcoreapplication.cpp:847)
==30037==    by 0x5CE8CA0: QApplicationPrivate::notify_helper(QObject*,
QEvent*) (qapplication.cpp:4441)
==30037==    by 0x5CF11C9: QApplication::notify(QObject*, QEvent*)
(qapplication.cpp:4324)
==30037==    by 0x568A815: KApplication::notify(QObject*, QEvent*)
(kapplication.cpp:310)
==30037==    by 0x6DBAE2B: QCoreApplication::notifyInternal(QObject*, QEvent*)
(qcoreapplication.cpp:732)
==30037==    by 0x5D83FFA: QWidgetPrivate::setGeometry_sys(int, int, int, int,
bool) (qcoreapplication.h:215)
==30037==    by 0x5D3644C: QWidget::setGeometry(QRect const&)
(qwidget.cpp:6802)
==30037==    by 0x61674FB: QAbstractScrollAreaPrivate::layoutChildren()
(qabstractscrollarea.cpp:480)
==30037== 
==30037== Invalid read of size 4
==30037==    at 0x156B5C97: PagePainter::scalePixmapOnImage(QImage&, QPixmap
const*, int, int, QRect const&, QImage::Format) (pagepainter.cpp:755)
==30037==    by 0x156B66AF: PagePainter::paintCroppedPageOnPainter(QPainter*,
Okular::Page const*, int, int, int, int, QRect const&, Okular::NormalizedRect
const&) (pagepainter.cpp:229)
==30037==    by 0x156C8BBA: PageView::drawDocumentOnPainter(QRect const&,
QPainter*) (pageview.cpp:2446)
==30037==    by 0x156C9390: PageView::paintEvent(QPaintEvent*)
(pageview.cpp:1212)
==30037==    by 0x5D3A459: QWidget::event(QEvent*) (qwidget.cpp:8346)
==30037==    by 0x60E7245: QFrame::event(QEvent*) (qframe.cpp:557)
==30037==    by 0x156C3D1C: PageView::viewportEvent(QEvent*)
(pageview.cpp:2292)
==30037==    by 0x6DBAFB6:
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)
(qcoreapplication.cpp:847)
==30037==    by 0x5CE8CA0: QApplicationPrivate::notify_helper(QObject*,
QEvent*) (qapplication.cpp:4441)
==30037==    by 0x5CF11C9: QApplication::notify(QObject*, QEvent*)
(qapplication.cpp:4324)
==30037==    by 0x568A815: KApplication::notify(QObject*, QEvent*)
(kapplication.cpp:310)
==30037==    by 0x6DBAE2B: QCoreApplication::notifyInternal(QObject*, QEvent*)
(qcoreapplication.cpp:732)
==30037==  Address 0x1d31fd9c is 0 bytes after a block of size 1,302,140
alloc'd
==30037==    at 0x4C26C3A: malloc (vg_replace_malloc.c:195)
==30037==    by 0x8714C55: XGetImage (in /usr/lib64/libX11.so.6.3.0)
==30037==    by 0x5DD355F: QX11PixmapData::toImage(QRect const&) const
(qpixmap_x11.cpp:1546)
==30037==    by 0x5DCF8E9: QX11PixmapData::toImage() const
(qpixmap_x11.cpp:1577)
==30037==    by 0x5DBE2FF: QPixmap::toImage() const (qpixmap.cpp:487)
==30037==    by 0x156B5BD2: PagePainter::scalePixmapOnImage(QImage&, QPixmap
const*, int, int, QRect const&, QImage::Format) (pagepainter.cpp:741)
==30037==    by 0x156B66AF: PagePainter::paintCroppedPageOnPainter(QPainter*,
Okular::Page const*, int, int, int, int, QRect const&, Okular::NormalizedRect
const&) (pagepainter.cpp:229)
==30037==    by 0x156C8BBA: PageView::drawDocumentOnPainter(QRect const&,
QPainter*) (pageview.cpp:2446)
==30037==    by 0x156C9390: PageView::paintEvent(QPaintEvent*)
(pageview.cpp:1212)
==30037==    by 0x5D3A459: QWidget::event(QEvent*) (qwidget.cpp:8346)
==30037==    by 0x60E7245: QFrame::event(QEvent*) (qframe.cpp:557)
==30037==    by 0x156C3D1C: PageView::viewportEvent(QEvent*)
(pageview.cpp:2292)
==30037== 
==30037== Invalid read of size 4
==30037==    at 0x156B5C97: PagePainter::scalePixmapOnImage(QImage&, QPixmap
const*, int, int, QRect const&, QImage::Format) (pagepainter.cpp:755)
==30037==    by 0x156B66AF: PagePainter::paintCroppedPageOnPainter(QPainter*,
Okular::Page const*, int, int, int, int, QRect const&, Okular::NormalizedRect
const&) (pagepainter.cpp:229)
==30037==    by 0x156BA70C: PagePainter::paintPageOnPainter(QPainter*,
Okular::Page const*, int, int, int, int, QRect const&) (pagepainter.cpp:54)
==30037==    by 0x156EB866: ThumbnailWidget::paint(QPainter&, QRect const&)
(thumbnaillist.cpp:826)
==30037==    by 0x156EBBF9: ThumbnailListPrivate::paintEvent(QPaintEvent*)
(thumbnaillist.cpp:165)
==30037==    by 0x5D3A459: QWidget::event(QEvent*) (qwidget.cpp:8346)
==30037==    by 0x5CE8CD3: QApplicationPrivate::notify_helper(QObject*,
QEvent*) (qapplication.cpp:4445)
==30037==    by 0x5CF11C9: QApplication::notify(QObject*, QEvent*)
(qapplication.cpp:4324)
==30037==    by 0x568A815: KApplication::notify(QObject*, QEvent*)
(kapplication.cpp:310)
==30037==    by 0x6DBAE2B: QCoreApplication::notifyInternal(QObject*, QEvent*)
(qcoreapplication.cpp:732)
==30037==    by 0x5D37321: QWidgetPrivate::drawWidget(QPaintDevice*, QRegion
const&, QPoint const&, int, QPainter*, QWidgetBackingStore*)
(qcoreapplication.h:218)
==30037==    by 0x5D37EEE:
QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&,
int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*)
(qwidget.cpp:5640)
==30037==  Address 0x1d78f018 is not stack'd, malloc'd or (recently) free'd
==30037== 
KCrash: Application 'okular' crashing...
KCrash: Attempting to start /usr/lib64/kde4/libexec/drkonqi from kdeinit
sock_file=/home/user/.kde4/socket-linux-3zjc/kdeinit4__0
Error: Leftover args in content stream 

[1]+  Angehalten              valgrind okular /Downloads/tools2.pdf
user at linux-3zjc:~> ==30037== 
==30037== HEAP SUMMARY:
==30037==     in use at exit: 10,924,524 bytes in 85,592 blocks
==30037==   total heap usage: 491,977 allocs, 406,385 frees, 147,750,455 bytes
allocated
==30037== 
==30037== LEAK SUMMARY:
==30037==    definitely lost: 47,040 bytes in 489 blocks
==30037==    indirectly lost: 192,929 bytes in 896 blocks
==30037==      possibly lost: 6,163,037 bytes in 41,576 blocks
==30037==    still reachable: 4,521,518 bytes in 42,631 blocks
==30037==         suppressed: 0 bytes in 0 blocks
==30037== Rerun with --leak-check=full to see details of leaked memory
==30037== 
==30037== For counts of detected and suppressed errors, rerun with: -v
==30037== Use --track-origins=yes to see where uninitialised values come from
==30037== ERROR SUMMARY: 145488 errors from 5 contexts (suppressed: 1527 from
14)

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the Okular-devel mailing list