| Summary: | Crash in QGIFFormat::fillRect while scanning files | ||
|---|---|---|---|
| Product: | [Unmaintained] kdelibs | Reporter: | kdebugsuser |
| Component: | qt | Assignee: | kdelibs bugs <kdelibs-bugs-null> |
| Status: | RESOLVED DOWNSTREAM | ||
| Severity: | crash | CC: | caulier.gilles, cfeck |
| Priority: | NOR | Keywords: | drkonqi |
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Fedora RPMs | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
kdebugsuser
2014-04-14 10:52:30 UTC
It crash in Qt imgio plugin for GIFF, not digiKam. Gilles Caulier I installed debuginfo and reproduced the problem:
Application: digiKam (digikam), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
185 62: movl (%rsp), %edi
[Current thread is 1 (Thread 0x7f254afaeac0 (LWP 1957))]
Thread 3 (Thread 0x7f2518ab6700 (LWP 2015)):
[KCrash Handler]
#6 QGIFFormat::fillRect (this=this@entry=0x7f25141f0440, image=image@entry=0x7f2514562158, col=col@entry=0, row=row@entry=0, w=41590, h=<optimized out>, color=16777215) at ../../../gui/image/qgifhandler.cpp:933
#7 0x00007f251b69ae0e in QGIFFormat::decode (this=0x7f25141f0440, image=image@entry=0x7f2514562158, buffer=0x7f25145fdec5 "e;zw4\304\333z\026\005\257\233\220\061\352Nz\212\254\361as\235\300\364\003\265$\304Sx\031d\v\201\327\326\251\272\204\340\205<\363\363f\255;\222\325\210\002\343q\003\004\201\324\364\065\\F\020\225\353\263\333\266*\321/]\212/\205\037+nZ\256\345x\004`\217J\260}\212\262;2r\a\r\351\332\232\321\357 \257\a\276*\226\203[X\257\062\003\205\373\314\307\070\365\244\021\355\003\344\311\a\030\247{\"\032\263\"\223#", length=852, nextFrameDelay=nextFrameDelay@entry=0x7f2514562170, loopCount=loopCount@entry=0x7f2514562174) at ../../../gui/image/qgifhandler.cpp:393
#8 0x00007f251b69ba75 in QGifHandler::read (this=0x7f2514562130, image=0x7f2518ab3710) at ../../../gui/image/qgifhandler.cpp:1114
#9 0x00007f2540b4fab4 in QImageReader::read (this=this@entry=0x7f2518ab3760, image=image@entry=0x7f2518ab3710) at image/qimagereader.cpp:1205
#10 0x00007f2540b50034 in QImageReader::read (this=this@entry=0x7f2518ab3760) at image/qimagereader.cpp:1155
#11 0x00007f2540b43c04 in QImage::load (this=this@entry=0x7f2518ab38b0, fileName=..., format=format@entry=0x0) at image/qimage.cpp:5094
#12 0x00007f2540b43cf6 in QImage::QImage (this=0x7f2518ab38b0, fileName=..., format=0x0) at image/qimage.cpp:995
#13 0x00007f2547899c31 in Digikam::QImageLoader::load (this=0x7f2518ab3ae0, filePath=..., observer=0x0) at /usr/src/debug/digikam-3.5.0/core/libs/dimg/loaders/qimageloader.cpp:55
#14 0x00007f254786d36c in Digikam::DImg::load (this=0x7f25143ec0f0, filePath=..., loadFlagsInt=1, observer=0x0, rawDecodingSettings=...) at /usr/src/debug/digikam-3.5.0/core/libs/dimg/dimg.cpp:558
#15 0x00007f254786da3e in Digikam::DImg::loadImageInfo (this=this@entry=0x7f25143ec0f0, filePath=..., loadMetadata=loadMetadata@entry=false, loadICCData=loadICCData@entry=false, loadUniqueHash=loadUniqueHash@entry=false, loadImageHistory=loadImageHistory@entry=false) at /usr/src/debug/digikam-3.5.0/core/libs/dimg/dimg.cpp:370
#16 0x00007f254742361e in Digikam::ImageScanner::loadFromDisk (this=this@entry=0x7f2518ab3e80) at /usr/src/debug/digikam-3.5.0/core/libs/database/imagescanner.cpp:1481
#17 0x00007f25474236e0 in Digikam::ImageScanner::newFile (this=this@entry=0x7f2518ab3e80, albumId=albumId@entry=18202) at /usr/src/debug/digikam-3.5.0/core/libs/database/imagescanner.cpp:266
#18 0x00007f25473b7eb6 in Digikam::CollectionScanner::scanNewFile (this=this@entry=0x7f2518ab5ad0, info=..., albumId=18202) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:1247
#19 0x00007f25473bb1d7 in Digikam::CollectionScanner::scanAlbum (this=this@entry=0x7f2518ab5ad0, location=..., album=...) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:1089
#20 0x00007f25473bb094 in Digikam::CollectionScanner::scanAlbum (this=this@entry=0x7f2518ab5ad0, location=..., album=...) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:1112
#21 0x00007f25473bb094 in Digikam::CollectionScanner::scanAlbum (this=this@entry=0x7f2518ab5ad0, location=..., album=...) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:1112
#22 0x00007f25473bb094 in Digikam::CollectionScanner::scanAlbum (this=this@entry=0x7f2518ab5ad0, location=..., album=...) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:1112
#23 0x00007f25473bb094 in Digikam::CollectionScanner::scanAlbum (this=this@entry=0x7f2518ab5ad0, location=..., album=...) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:1112
#24 0x00007f25473bb094 in Digikam::CollectionScanner::scanAlbum (this=this@entry=0x7f2518ab5ad0, location=..., album=...) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:1112
#25 0x00007f25473bb094 in Digikam::CollectionScanner::scanAlbum (this=this@entry=0x7f2518ab5ad0, location=..., album=...) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:1112
#26 0x00007f25473bb094 in Digikam::CollectionScanner::scanAlbum (this=this@entry=0x7f2518ab5ad0, location=..., album=...) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:1112
#27 0x00007f25473bb094 in Digikam::CollectionScanner::scanAlbum (this=this@entry=0x7f2518ab5ad0, location=..., album=...) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:1112
#28 0x00007f25473bb094 in Digikam::CollectionScanner::scanAlbum (this=this@entry=0x7f2518ab5ad0, location=..., album=...) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:1112
#29 0x00007f25473bb094 in Digikam::CollectionScanner::scanAlbum (this=this@entry=0x7f2518ab5ad0, location=..., album=...) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:1112
#30 0x00007f25473bb094 in Digikam::CollectionScanner::scanAlbum (this=this@entry=0x7f2518ab5ad0, location=..., album=...) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:1112
#31 0x00007f25473bb094 in Digikam::CollectionScanner::scanAlbum (this=this@entry=0x7f2518ab5ad0, location=..., album=...) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:1112
#32 0x00007f25473bba43 in Digikam::CollectionScanner::scanAlbumRoot (this=this@entry=0x7f2518ab5ad0, location=...) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:828
#33 0x00007f25473bc69d in Digikam::CollectionScanner::completeScan (this=this@entry=0x7f2518ab5ad0) at /usr/src/debug/digikam-3.5.0/core/libs/database/collectionscanner.cpp:489
#34 0x00000000005e2216 in Digikam::ScanController::run (this=0x12548c0) at /usr/src/debug/digikam-3.5.0/core/digikam/database/scancontroller.cpp:756
#35 0x00007f253fd133af in QThreadPrivate::start (arg=0x12548c0) at thread/qthread_unix.cpp:338
#36 0x00007f253fa81f33 in start_thread (arg=0x7f2518ab6700) at pthread_create.c:309
#37 0x00007f253ed25ded in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
Thread 2 (Thread 0x7f2513fff700 (LWP 2016)):
#0 0x00007fffd93fe7c2 in clock_gettime ()
#1 0x00007f253ed33f3d in __GI___clock_gettime (clock_id=<optimized out>, tp=<optimized out>) at ../sysdeps/unix/clock_gettime.c:115
#2 0x00007f253fd6a7ab in do_gettime (frac=0x7f2513ffe820, sec=0x7f2513ffe818) at tools/qelapsedtimer_unix.cpp:127
#3 qt_gettime () at tools/qelapsedtimer_unix.cpp:144
#4 0x00007f253fe4b655 in updateCurrentTime (this=0x7f250c001330) at kernel/qeventdispatcher_unix.cpp:354
#5 QTimerInfoList::timerWait (this=0x7f250c001330, tm=...) at kernel/qeventdispatcher_unix.cpp:460
#6 0x00007f253fe49cdc in timerSourcePrepareHelper (src=<optimized out>, timeout=0x7f2513ffe8f4) at kernel/qeventdispatcher_glib.cpp:136
#7 0x00007f253fe49da5 in timerSourcePrepare (source=<optimized out>, timeout=timeout@entry=0x7f2513ffe8f4) at kernel/qeventdispatcher_glib.cpp:169
#8 0x00007f253ab4ebed in g_main_context_prepare (context=context@entry=0x7f250c0009a0, priority=priority@entry=0x7f2513ffe980) at gmain.c:3340
#9 0x00007f253ab4f4bb in g_main_context_iterate (context=context@entry=0x7f250c0009a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3693
#10 0x00007f253ab4f6dc in g_main_context_iteration (context=0x7f250c0009a0, may_block=1) at gmain.c:3774
#11 0x00007f253fe49ec6 in QEventDispatcherGlib::processEvents (this=0x7f250c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:427
#12 0x00007f253fe19edf in QEventLoop::processEvents (this=this@entry=0x7f2513ffeac0, flags=...) at kernel/qeventloop.cpp:149
#13 0x00007f253fe1a22d in QEventLoop::exec (this=this@entry=0x7f2513ffeac0, flags=...) at kernel/qeventloop.cpp:204
#14 0x00007f253fd10baf in QThread::exec (this=this@entry=0x1256f80) at thread/qthread.cpp:536
#15 0x00007f253fdfa863 in QInotifyFileSystemWatcherEngine::run (this=0x1256f80) at io/qfilesystemwatcher_inotify.cpp:265
#16 0x00007f253fd133af in QThreadPrivate::start (arg=0x1256f80) at thread/qthread_unix.cpp:338
#17 0x00007f253fa81f33 in start_thread (arg=0x7f2513fff700) at pthread_create.c:309
#18 0x00007f253ed25ded in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
Thread 1 (Thread 0x7f254afaeac0 (LWP 1957)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x00007f253fd138d6 in wait (time=18446744073709551615, this=0x12549f0) at thread/qwaitcondition_unix.cpp:86
#2 QWaitCondition::wait (this=this@entry=0x12549a0, mutex=mutex@entry=0x1254978, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3 0x00007f253fd12f3e in QThread::wait (this=this@entry=0x12548c0, time=time@entry=18446744073709551615) at thread/qthread_unix.cpp:709
#4 0x00000000005dd669 in Digikam::ScanController::shutDown (this=this@entry=0x12548c0) at /usr/src/debug/digikam-3.5.0/core/digikam/database/scancontroller.cpp:361
#5 0x00000000005e077b in Digikam::ScanController::~ScanController (this=0x12548c0, __in_chrg=<optimized out>) at /usr/src/debug/digikam-3.5.0/core/digikam/database/scancontroller.cpp:337
#6 0x00000000005e08f7 in ~ScanControllerCreator (this=0x12548c0, __in_chrg=<optimized out>) at /usr/src/debug/digikam-3.5.0/core/digikam/database/scancontroller.cpp:277
#7 destroy () at /usr/src/debug/digikam-3.5.0/core/digikam/database/scancontroller.cpp:284
#8 0x00007f253ec6a4c9 in __run_exit_handlers (status=status@entry=1, listp=0x7f253efe96c8 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:82
#9 0x00007f253ec6a515 in __GI_exit (status=status@entry=1) at exit.c:104
#10 0x00007f2538eaa54e in gdk_x_io_error (display=<optimized out>) at gdkmain-x11.c:544
#11 0x00007f25417e6510 in KApplication::xioErrhandler (this=0x7fffd9368a70, dpy=0xfcbac0) at /usr/src/debug/kdelibs-4.12.3/kdeui/kernel/kapplication.cpp:419
#12 0x00007f253d3b415e in _XIOError (dpy=dpy@entry=0xfcbac0) at XlibInt.c:1498
#13 0x00007f253d3b1b4d in _XEventsQueued (dpy=dpy@entry=0xfcbac0, mode=mode@entry=2) at xcb_io.c:366
#14 0x00007f253d3a356b in XEventsQueued (dpy=0xfcbac0, mode=2) at Pending.c:43
#15 0x00007f2540b2b6fc in x11EventSourceCheck (s=0xf9c510) at kernel/qguieventdispatcher_glib.cpp:85
#16 0x00007f253ab4eff9 in g_main_context_check (context=context@entry=0xf998a0, max_priority=2147483647, fds=fds@entry=0x2ca4ef0, n_fds=n_fds@entry=13) at gmain.c:3557
#17 0x00007f253ab4f533 in g_main_context_iterate (context=context@entry=0xf998a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3710
#18 0x00007f253ab4f6dc in g_main_context_iteration (context=0xf998a0, may_block=1) at gmain.c:3774
#19 0x00007f253fe49ea5 in QEventDispatcherGlib::processEvents (this=0xf059b0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#20 0x00007f2540b2bca6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:207
#21 0x00007f253fe19edf in QEventLoop::processEvents (this=this@entry=0x1249200, flags=...) at kernel/qeventloop.cpp:149
#22 0x00007f253fe1a22d in QEventLoop::exec (this=0x1249200, flags=...) at kernel/qeventloop.cpp:204
#23 0x00000000005ddb05 in Digikam::ScanController::completeCollectionScanCore (this=0x12548c0, needTotalFiles=needTotalFiles@entry=true, defer=defer@entry=false) at /usr/src/debug/digikam-3.5.0/core/digikam/database/scancontroller.cpp:486
#24 0x00000000005ddc2e in Digikam::ScanController::completeCollectionScanInBackground (this=<optimized out>, defer=defer@entry=false) at /usr/src/debug/digikam-3.5.0/core/digikam/database/scancontroller.cpp:471
#25 0x000000000051e10a in Digikam::NewItemsFinder::slotStart (this=0x2cceaa0) at /usr/src/debug/digikam-3.5.0/core/utilities/maintenance/newitemsfinder.cpp:106
#26 0x00007f253fe3427e in QObject::event (this=0x2cceaa0, e=<optimized out>) at kernel/qobject.cpp:1194
#27 0x00007f2540a89d8c in QApplicationPrivate::notify_helper (this=0xf9a670, receiver=0x2cceaa0, e=0x12554f0) at kernel/qapplication.cpp:4562
#28 0x00007f2540a90725 in QApplication::notify (this=this@entry=0x7fffd9368a70, receiver=receiver@entry=0x2cceaa0, e=e@entry=0x12554f0) at kernel/qapplication.cpp:4348
#29 0x00007f25417e7b0a in KApplication::notify (this=0x7fffd9368a70, receiver=0x2cceaa0, event=0x12554f0) at /usr/src/debug/kdelibs-4.12.3/kdeui/kernel/kapplication.cpp:311
#30 0x00007f253fe1b39d in QCoreApplication::notifyInternal (this=0x7fffd9368a70, receiver=receiver@entry=0x2cceaa0, event=event@entry=0x12554f0) at kernel/qcoreapplication.cpp:949
#31 0x00007f253fe1e485 in sendEvent (event=0x12554f0, receiver=0x2cceaa0) at kernel/qcoreapplication.h:231
#32 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0xf04470) at kernel/qcoreapplication.cpp:1573
#33 0x00007f253fe1e923 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1466
#34 0x00007f253fe4a623 in sendPostedEvents () at kernel/qcoreapplication.h:236
#35 postEventSourceDispatch (s=s@entry=0xf982f0) at kernel/qeventdispatcher_glib.cpp:280
#36 0x00007f253ab4f2a6 in g_main_dispatch (context=0xf998a0) at gmain.c:3066
#37 g_main_context_dispatch (context=context@entry=0xf998a0) at gmain.c:3642
#38 0x00007f253ab4f628 in g_main_context_iterate (context=context@entry=0xf998a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3713
#39 0x00007f253ab4f6dc in g_main_context_iteration (context=0xf998a0, may_block=1) at gmain.c:3774
#40 0x00007f253fe49ea5 in QEventDispatcherGlib::processEvents (this=0xf059b0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#41 0x00007f2540b2bca6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:207
#42 0x00007f253fe19edf in QEventLoop::processEvents (this=this@entry=0x7fffd9368540, flags=...) at kernel/qeventloop.cpp:149
#43 0x00007f253fe1a22d in QEventLoop::exec (this=this@entry=0x7fffd9368540, flags=...) at kernel/qeventloop.cpp:204
#44 0x00007f253fe1f749 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1221
#45 0x00007f2540a883fc in QApplication::exec () at kernel/qapplication.cpp:3823
#46 0x000000000049232d in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/digikam-3.5.0/core/digikam/main/main.cpp:235
I am using qt version 4.8.5-15.fc20. A bug-report was filed today: https://bugreports.qt-project.org/browse/QTBUG-38367 Is there any way to get the filename of the gif-File ? You could use the "strace" command in Konsole to find out which files digikam tries to open before it crashes. On the other hand, GIF is a pretty rare format nowadays, so a simple "find | grep -i gif$" might help, too. Thank you Christoph. There were many gif-files and I finally tracked the problem down by simply searching for the decode-buffer-parameter-string in all gif-files. But I really wish digikam would provide better logging. After removing the gif-file, I got digikam to scan all files. But I never managed to create the thumbnails. I reported this bug to the qt-Security-Team. They fixed it. CVE-2014-0190: http://lists.qt-project.org/pipermail/announce/2014-April/000045.html https://qt.gitorious.org/qt/qtbase/commit/eb1325047f2697d24e93ebaf924900affc876bc1 So I guess this bug can be closed. Thanks for the heads up! Closing. |