[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [Bug 230282] Crash (reproducible) in PagePainter::scalePixmapOnImage()
From:       Sami Liedes <sliedes () cc ! hut ! fi>
Date:       2010-03-11 21:17:49
Message-ID: 20100311211749.41EC7370EB () immanuel ! kde ! org
[Download RAW message or body]

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





--- Comment #5 from Sami Liedes <sliedes cc hut fi>  2010-03-11 22:17:44 ---
I take it you can't reproduce this. Ok, I'll run it under valgrind. FWIW I can
reproduce it both on my desktop and my laptop (both running Debian unstable on
amd64), but even on my laptop, I need to zoom until the page is something like
1600 px wide.

Here's the valgrind output. I'll recompile it without optimizations and try to
reproduce it then for better traces unless you can figure it out by then, but
here's first the valgrind output from the stock (optimized) okular in Debian.
From that it seems to be a read through a null pointer.

==1236== Memcheck, a memory error detector
==1236== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
==1236== Using Valgrind-3.5.0-Debian and LibVEX; rerun with -h for copyright
info
==1236== Command: okular Mallivihko.pdf
==1236==
==1236== Conditional jump or move depends on uninitialised value(s)
==1236==    at 0x7B68290: inflateReset2 (in /usr/lib/libz.so.1.2.3.4)
==1236==    by 0x7B6837F: inflateInit2_ (in /usr/lib/libz.so.1.2.3.4)
==1236==    by 0x7B62AD8: uncompress (in /usr/lib/libz.so.1.2.3.4)
==1236==    by 0x62CC9AB: qUncompress(unsigned char const*, int)
(qbytearray.cpp:543)
==1236==    by 0x57D8820: KPixmapCache::Private::loadData(int, QPixmap&)
(qbytearray.h:579)
==1236==    by 0x57D9905: KPixmapCache::find(QString const&, QPixmap&)
(kpixmapcache.cpp:1314)
==1236==    by 0x573B479: KIconCache::find(QString const&, QPixmap&, QString*)
(kiconcache.cpp:277)
==1236==    by 0x572E751: KIconLoader::loadIcon(QString const&,
KIconLoader::Group, int, int, QStringList const&, QString*, bool) const
(kiconloader.cpp:1083)
==1236==    by 0x57269AC: KIconEngine::pixmap(QSize const&, QIcon::Mode,
QIcon::State) (kiconengine.cpp:119)
==1236==    by 0x6913404: QIcon::pixmap(QSize const&, QIcon::Mode,
QIcon::State) const (qicon.cpp:716)
==1236==    by 0x6902514: QWidgetPrivate::setWindowIcon_sys(bool)
(qwidget_x11.cpp:1347)
==1236==    by 0x68CC43F: QWidget::create(unsigned long, bool, bool)
(qwidget.cpp:1283)
==1236==
==1236== Conditional jump or move depends on uninitialised value(s)
==1236==    at 0x10490137: PageView::resizeEvent(QResizeEvent*)
(pageview.cpp:1279)
==1236==    by 0x68CA1C9: QWidget::event(QEvent*) (qwidget.cpp:7700)
==1236==    by 0x6C3292A: QFrame::event(QEvent*) (qframe.cpp:559)
==1236==    by 0x63AAFB7:
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)
(qcoreapplication.cpp:726)
==1236==    by 0x6879FEB: QApplicationPrivate::notify_helper(QObject*, QEvent*)
(qapplication.cpp:4061)
==1236==    by 0x6882079: QApplication::notify(QObject*, QEvent*)
(qapplication.cpp:4030)
==1236==    by 0x575EDE5: KApplication::notify(QObject*, QEvent*)
(kapplication.cpp:302)
==1236==    by 0x63ABC9B: QCoreApplication::notifyInternal(QObject*, QEvent*)
(qcoreapplication.cpp:610)
==1236==    by 0x69085DA: QWidgetPrivate::setGeometry_sys(int, int, int, int,
bool) (qcoreapplication.h:213)
==1236==    by 0x68C9096: QWidget::setGeometry(QRect const&) (qwidget.cpp:6237)
==1236==    by 0x6CC17B3: QAbstractScrollAreaPrivate::layoutChildren()
(qabstractscrollarea.cpp:459)
==1236==    by 0x6CC1DB0: QAbstractScrollArea::event(QEvent*)
(qabstractscrollarea.cpp:874)
==1236==
==1236== Invalid read of size 4
==1236==    at 0x1047FB98: PagePainter::scalePixmapOnImage(QImage&, QPixmap
const*, int, int, QRect const&, QImage::Format) (pagepainter.cpp:752)
==1236==    by 0x10484544: PagePainter::paintCroppedPageOnPainter(QPainter*,
Okular::Page const*, int, int, int, int, QRect const&, Okular::NormalizedRect
const&) (pagepainter.cpp:604)
==1236==    by 0x104918B2: PageView::drawDocumentOnPainter(QRect const&,
QPainter*) (pageview.cpp:2368)
==1236==    by 0x10492711: PageView::contentsPaintEvent(QPaintEvent*)
(pageview.cpp:1250)
==1236==    by 0x68CA195: QWidget::event(QEvent*) (qwidget.cpp:7692)
==1236==    by 0x104A066C: PageViewWidget::event(QEvent*) (pageview.cpp:264)
==1236==    by 0x687A01C: QApplicationPrivate::notify_helper(QObject*, QEvent*)
(qapplication.cpp:4065)
==1236==    by 0x6882079: QApplication::notify(QObject*, QEvent*)
(qapplication.cpp:4030)
==1236==    by 0x575EDE5: KApplication::notify(QObject*, QEvent*)
(kapplication.cpp:302)
==1236==    by 0x63ABC9B: QCoreApplication::notifyInternal(QObject*, QEvent*)
(qcoreapplication.cpp:610)
==1236==    by 0x68D11BD: QWidgetPrivate::drawWidget(QPaintDevice*, QRegion
const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) (qwidget.cpp:5084)
==1236==    by 0x6A46E6D: QWidgetBackingStore::sync() (qbackingstore.cpp:1264)
==1236==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==1236==
KCrash: Application 'okular' crashing...
sock_file=/home/sliedes/.kde/socket-lh/kdeinit4_localhost_10
kdeinit4: preparing to launch /usr/lib/kde4/libexec/drkonqi
==1236==
==1236== HEAP SUMMARY:
==1236==     in use at exit: 6,163,041 bytes in 49,127 blocks
==1236==   total heap usage: 222,236 allocs, 173,109 frees, 360,064,743 bytes
allocated
==1236==
==1236== LEAK SUMMARY:
==1236==    definitely lost: 2,812 bytes in 8 blocks
==1236==    indirectly lost: 10,600 bytes in 332 blocks
==1236==      possibly lost: 1,747,733 bytes in 20,205 blocks
==1236==    still reachable: 4,401,896 bytes in 28,582 blocks
==1236==         suppressed: 0 bytes in 0 blocks
==1236== Rerun with --leak-check=full to see details of leaked memory
==1236==
==1236== For counts of detected and suppressed errors, rerun with: -v
==1236== Use --track-origins=yes to see where uninitialised values come from
==1236== ERROR SUMMARY: 14 errors from 3 contexts (suppressed: 7 from 5)

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic