[Okular-devel] [Bug 234369] Okular crashes when opening some PDF files

Giovanni Beltrame giovanni.beltrame at polymtl.ca
Wed Apr 14 21:39:17 CEST 2010


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





--- Comment #6 from Giovanni Beltrame <giovanni beltrame polymtl ca>  2010-04-14 21:39:14 ---
Valgrind doesn't seem to find anything special, and it prevents the glibc
detected abort.
I have also noticed that Okular::Part works, for example, opening the same pdf
in Kile's embedded viewer doesn't produce any crash.

I tried downgrading libpoppler to 0.12.0 (the only version readily available
with packages) and it effectively prevents crashing, but also prevents any
rendering (i.e. I see only white pages) :) 

Here is what glibc finds:

*** glibc detected *** okular: free(): invalid pointer: 0xb1010008 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6(+0x6b581)[0xb5f0c581]
/lib/tls/i686/cmov/libc.so.6(+0x6cdd8)[0xb5f0ddd8]
/lib/tls/i686/cmov/libc.so.6(cfree+0x6d)[0xb5f10ebd]
/usr/lib/libpoppler.so.5(gfree+0x21)[0xb244dab1]
/usr/lib/libpoppler.so.5(_ZN12SplashBitmapD1Ev+0x37)[0xb246e2f7]
[...]

Valgrind:

==30616== Memcheck, a memory error detector
==30616== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
==30616== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for
copyright info
==30616== Command: /usr/bin/okular cv.pdf
==30616== 
==30616== Conditional jump or move depends on uninitialised value(s)
==30616==    at 0x4F4E750: QX11PaintEngine::updateMatrix(QTransform const&)
(qpaintengine_x11.cpp:2035)
==30616==    by 0x4F5A56A: QX11PaintEngine::updateState(QPaintEngineState
const&) (qpaintengine_x11.cpp:1077)
==30616==    by 0x4E966F3: QPainterPrivate::updateStateImpl(QPainterState*)
(qpainter.cpp:892)
==30616==    by 0x4E967BB: QPainterPrivate::updateState(QPainterState*)
(qpainter.cpp:920)
==30616==    by 0x4EA17A6: QPainter::drawLines(QLineF const*, int)
(qpainter.cpp:4616)
==30616==    by 0x68D5460:
OxygenStyle::standardIconImplementation(QStyle::StandardPixmap, QStyleOption
const*, QWidget const*) const (qpainter.h:534)
==30616==    by 0x68C7CD3: OxygenStyle::qt_metacall(QMetaObject::Call, int,
void**) (oxygen.moc:80)
==30616==    by 0x4AE5C99: QMetaObject::metacall(QObject*, QMetaObject::Call,
int, void**) (qmetaobject.cpp:237)
==30616==    by 0x4AE9AC4: QMetaMethod::invoke(QObject*, Qt::ConnectionType,
QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument) const
(qmetaobject.cpp:1533)
==30616==    by 0x4AEA0CE: QMetaObject::invokeMethod(QObject*, char const*,
Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)
(qmetaobject.cpp:1113)
==30616==    by 0x505558B: QStyle::standardIcon(QStyle::StandardPixmap,
QStyleOption const*, QWidget const*) const (qstyle.cpp:2279)
==30616==    by 0x5216C9D: QToolBarExtension::setOrientation(Qt::Orientation)
(qtoolbarextension.cpp:67)
==30616== 
okular(30616)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(30616)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(30616)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
==30616== Conditional jump or move depends on uninitialised value(s)
==30616==    at 0x7197E3F: PageView::resizeEvent(QResizeEvent*)
(pageview.cpp:1235)
==30616==    by 0x4D89642: QWidget::event(QEvent*) (qwidget.cpp:8152)
==30616==    by 0x5185FD2: QFrame::event(QEvent*) (qframe.cpp:557)
==30616==    by 0x5220381: QAbstractScrollArea::viewportEvent(QEvent*)
(qabstractscrollarea.cpp:1036)
==30616==    by 0x719DC4F: PageView::viewportEvent(QEvent*) (pageview.cpp:2241)
==30616==    by 0x5222C64: QAbstractScrollAreaFilter::eventFilter(QObject*,
QEvent*) (qabstractscrollarea_p.h:100)
==30616==    by 0x4ADFCD9:
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)
(qcoreapplication.cpp:819)
==30616==    by 0x4D2B4B8: QApplicationPrivate::notify_helper(QObject*,
QEvent*) (qapplication.cpp:4296)
==30616==    by 0x4D320F8: QApplication::notify(QObject*, QEvent*)
(qapplication.cpp:4265)
==30616==    by 0x44CBF29: KApplication::notify(QObject*, QEvent*)
(kapplication.cpp:302)
==30616==    by 0x4AE0A3A: QCoreApplication::notifyInternal(QObject*, QEvent*)
(qcoreapplication.cpp:704)
==30616==    by 0x4DDDA80: QWidgetPrivate::setGeometry_sys(int, int, int, int,
bool) (qcoreapplication.h:215)
==30616== 
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No such
file or directory
QFileSystemWatcher: failed to add paths: /home/beltrame/.config/ibus/bus
Bus::open: Can not get ibus-daemon's address. 
IBusInputContext::createInputContext: no connection to ibus-daemon 
==30616== 
==30616== HEAP SUMMARY:
==30616==     in use at exit: 1,117,736 bytes in 6,323 blocks
==30616==   total heap usage: 611,127 allocs, 604,804 frees, 287,081,191 bytes
allocated
==30616== 
==30616== LEAK SUMMARY:
==30616==    definitely lost: 984 bytes in 9 blocks
==30616==    indirectly lost: 858,240 bytes in 2,985 blocks
==30616==      possibly lost: 136,478 bytes in 1,179 blocks
==30616==    still reachable: 122,034 bytes in 2,150 blocks
==30616==         suppressed: 0 bytes in 0 blocks
==30616== Rerun with --leak-check=full to see details of leaked memory
==30616== 
==30616== For counts of detected and suppressed errors, rerun with: -v
==30616== Use --track-origins=yes to see where uninitialised values come from
==30616== ERROR SUMMARY: 31 errors from 2 contexts (suppressed: 223 from 15)

-- 
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