Bug 242071

Summary: ark crashes when I open a specific rar archive
Product: [Applications] ark Reporter: Rami <ramib85>
Component: generalAssignee: Harald Hvaal <metellius>
Status: RESOLVED FIXED    
Severity: crash CC: rakuco
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 4.4.5
Sentry Crash Report:

Description Rami 2010-06-18 14:27:18 UTC
Application: ark (2.14)
KDE Platform Version: 4.4.3 (KDE 4.4.3)
Qt Version: 4.6.3
Operating System: Linux 2.6.34-9-desktop i686
Distribution: "openSUSE 11.3 RC 1 (i586)"

-- Information about the crash:
I have a rar file that causes ark to crash immediately,
this occurs only on this file as I can tell 

The crash can be reproduced every time.

 -- Backtrace:
Application: Ark (ark), signal: Segmentation fault
[Current thread is 1 (Thread 0xb5524710 (LWP 8510))]

Thread 2 (Thread 0xb3028b70 (LWP 8511)):
[KCrash Handler]
#6  QString::indexOf (this=0x816f408, ch=..., from=0, cs=Qt::CaseInsensitive) at tools/qstring.cpp:2492
#7  0xb302e25b in contains (this=0x81982e0, line=...) at /usr/include/QtCore/qstring.h:892
#8  CliPlugin::readListLine (this=0x81982e0, line=...) at /usr/src/debug/kdeutils-4.4.3/ark/plugins/clirarplugin/cliplugin.cpp:115
#9  0xb78954f8 in Kerfuffle::CliInterface::handleLine (this=0x81982e0, line=...) at /usr/src/debug/kdeutils-4.4.3/ark/kerfuffle/cliinterface.cpp:523
#10 0xb7895c36 in Kerfuffle::CliInterface::readStdout (this=0x81982e0, handleAll=104) at /usr/src/debug/kdeutils-4.4.3/ark/kerfuffle/cliinterface.cpp:468
#11 0xb789600c in Kerfuffle::CliInterface::qt_metacall (this=0x81982e0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xb3027a7c)
    at /usr/src/debug/kdeutils-4.4.3/build/ark/kerfuffle/cliinterface.moc:80
#12 0xb302b763 in CliPlugin::qt_metacall (this=0x81982e0, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0xb3027a7c) at /usr/src/debug/kdeutils-4.4.3/build/ark/plugins/clirarplugin/cliplugin.moc:66
#13 0xb63daefd in QMetaObject::metacall (object=0x81982e0, cl=QMetaObject::InvokeMetaMethod, idx=6, argv=0xb3027a7c) at kernel/qmetaobject.cpp:237
#14 0xb63e9fe8 in QMetaObject::activate (sender=0x8201ae8, m=0xb64ef6e8, local_signal_index=5, argv=0x0) at kernel/qobject.cpp:3295
#15 0xb636d6e5 in QProcess::readyReadStandardOutput (this=0x8201ae8) at .moc/release-shared/moc_qprocess.cpp:162
#16 0xb63717e7 in QProcessPrivate::_q_canReadStandardOutput (this=0x8201b00) at io/qprocess.cpp:897
#17 0xb63720a3 in QProcess::qt_metacall (this=0x8201ae8, _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0xb3027c58) at .moc/release-shared/moc_qprocess.cpp:107
#18 0xb6ffea1e in KProcess::qt_metacall (this=0x8201ae8, _c=QMetaObject::InvokeMetaMethod, _id=17, _a=0xb3027c58) at /usr/src/debug/kdelibs-4.4.3/build/kdecore/kprocess.moc:69
#19 0xb63daefd in QMetaObject::metacall (object=0x8201ae8, cl=QMetaObject::InvokeMetaMethod, idx=17, argv=0xb3027c58) at kernel/qmetaobject.cpp:237
#20 0xb63e9fe8 in QMetaObject::activate (sender=0x81d21b8, m=0xb64f1550, local_signal_index=0, argv=0xb3027c58) at kernel/qobject.cpp:3295
#21 0xb64368a5 in QSocketNotifier::activated (this=0x81d21b8, _t1=15) at .moc/release-shared/moc_qsocketnotifier.cpp:89
#22 0xb63ef45f in QSocketNotifier::event (this=0x81d21b8, e=0xb30280b4) at kernel/qsocketnotifier.cpp:317
#23 0xb662bc64 in QApplicationPrivate::notify_helper (this=0x80753a0, receiver=0x81d21b8, e=0xb30280b4) at kernel/qapplication.cpp:4302
#24 0xb6633bf7 in QApplication::notify (this=0xbfe6ae8c, receiver=0x81d21b8, e=0xb30280b4) at kernel/qapplication.cpp:3706
#25 0xb72fb791 in KApplication::notify (this=0xbfe6ae8c, receiver=0x81d21b8, event=0xb30280b4) at /usr/src/debug/kdelibs-4.4.3/kdeui/kernel/kapplication.cpp:302
#26 0xb63d4e0e in QCoreApplication::notifyInternal (this=0xbfe6ae8c, receiver=0x81d21b8, event=0xb30280b4) at kernel/qcoreapplication.cpp:726
#27 0xb6400708 in sendEvent (source=0x818a570) at kernel/qcoreapplication.h:215
#28 socketNotifierSourceDispatch (source=0x818a570) at kernel/qeventdispatcher_glib.cpp:110
#29 0xb5943b49 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#30 0xb5944350 in ?? () from /usr/lib/libglib-2.0.so.0
#31 0xb594460e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#32 0xb6400d4b in QEventDispatcherGlib::processEvents (this=0x818a5d0, flags=...) at kernel/qeventdispatcher_glib.cpp:412
#33 0xb63d411d in QEventLoop::processEvents (this=0xb30282c0, flags=...) at kernel/qeventloop.cpp:149
#34 0xb63d4319 in QEventLoop::exec (this=0xb30282c0, flags=...) at kernel/qeventloop.cpp:201
#35 0xb62d8403 in QThread::exec (this=0x81dc4e0) at thread/qthread.cpp:487
#36 0xb78857d5 in Kerfuffle::ThreadExecution::run (this=0x81dc4e0) at /usr/src/debug/kdeutils-4.4.3/ark/kerfuffle/threading.cpp:47
#37 0xb62db04f in QThreadPrivate::start (arg=0x81dc4e0) at thread/qthread_unix.cpp:248
#38 0xb5b02b25 in start_thread () from /lib/libpthread.so.0
#39 0xb60ef46e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb5524710 (LWP 8510)):
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb60e475e in poll () from /lib/libc.so.6
#2  0xb55da470 in ?? () from /usr/lib/libxcb.so.1
#3  0xb55db930 in xcb_wait_for_reply () from /usr/lib/libxcb.so.1
#4  0xb5c0da3b in _XReply () from /usr/lib/libX11.so.6
#5  0xb5be9b97 in XGetImage () from /usr/lib/libX11.so.6
#6  0xb6724059 in QX11PixmapData::toImage (this=0x80f3668) at image/qpixmap_x11.cpp:1492
#7  0xb670e9cd in QPixmap::toImage (this=0xbfe6a20c) at image/qpixmap.cpp:486
#8  0xb66cf2c3 in QWidgetPrivate::setWindowIcon_sys (this=0x818f728, forceReset=false) at kernel/qwidget_x11.cpp:1459
#9  0xb668276f in QWidget::create (this=0xbfe6a404, window=0, initializeWindow=true, destroyOldWindow=true) at kernel/qwidget.cpp:1355
#10 0xb6682443 in QWidgetPrivate::createWinId (this=0x818f728, winid=0) at kernel/qwidget.cpp:2343
#11 0xb6682464 in QWidgetPrivate::createWinId (this=0x81ae978, winid=0) at kernel/qwidget.cpp:2324
#12 0xb6683f19 in QWidget::winId (this=0x8146690) at kernel/qwidget.cpp:2306
#13 0xb7326afb in KXMessages::broadcastMessage (this=0xbfe6a404, msg_type_P=0xb74f788d "_NET_STARTUP_INFO", message_P=..., screen_P=-1, obsolete_P=false)
    at /usr/src/debug/kdelibs-4.4.3/kdeui/util/kxmessages.cpp:103
#14 0xb740eff2 in KStartupInfo::sendFinish (id_P=...) at /usr/src/debug/kdelibs-4.4.3/kdeui/kernel/kstartupinfo.cpp:533
#15 0xb740f0e3 in KStartupInfo::appStarted (startup_id=...) at /usr/src/debug/kdelibs-4.4.3/kdeui/kernel/kstartupinfo.cpp:605
#16 0xb740f1a9 in KStartupInfo::appStarted () at /usr/src/debug/kdelibs-4.4.3/kdeui/kernel/kstartupinfo.cpp:588
#17 0xb740f23d in KStartupInfo::handleAutoAppStartedSending () at /usr/src/debug/kdelibs-4.4.3/kdeui/kernel/kstartupinfo.cpp:638
#18 0xb740f979 in _k_checkAppStartedSlot (this=0xbfe6ae8c, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfe6a59c)
    at /usr/src/debug/kdelibs-4.4.3/kdeui/kernel/kapplication.cpp:308
#19 KApplication::qt_metacall (this=0xbfe6ae8c, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfe6a59c) at /usr/src/debug/kdelibs-4.4.3/build/kdeui/kapplication.moc:96
#20 0xb63daefd in QMetaObject::metacall (object=0xbfe6ae8c, cl=QMetaObject::InvokeMetaMethod, idx=24, argv=0xbfe6a59c) at kernel/qmetaobject.cpp:237
#21 0xb63e9fe8 in QMetaObject::activate (sender=0x80e8828, m=0xb64f15a4, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3295
#22 0xb6436a35 in QTimer::timeout (this=0x80e8828) at .moc/release-shared/moc_qtimer.cpp:134
#23 0xb63ef8e6 in QTimer::timerEvent (this=0x80e8828, e=0xbfe6aad0) at kernel/qtimer.cpp:271
#24 0xb63e7774 in QObject::event (this=0x80e8828, e=0xbfe6aad0) at kernel/qobject.cpp:1212
#25 0xb662bc64 in QApplicationPrivate::notify_helper (this=0x80753a0, receiver=0x80e8828, e=0xbfe6aad0) at kernel/qapplication.cpp:4302
#26 0xb6633bf7 in QApplication::notify (this=0xbfe6ae8c, receiver=0x80e8828, e=0xbfe6aad0) at kernel/qapplication.cpp:3706
#27 0xb72fb791 in KApplication::notify (this=0xbfe6ae8c, receiver=0x80e8828, event=0xbfe6aad0) at /usr/src/debug/kdelibs-4.4.3/kdeui/kernel/kapplication.cpp:302
#28 0xb63d4e0e in QCoreApplication::notifyInternal (this=0xbfe6ae8c, receiver=0x80e8828, event=0xbfe6aad0) at kernel/qcoreapplication.cpp:726
#29 0xb640370e in sendEvent (this=0x8078574) at kernel/qcoreapplication.h:215
#30 QTimerInfoList::activateTimers (this=0x8078574) at kernel/qeventdispatcher_unix.cpp:618
#31 0xb6400642 in timerSourceDispatch (source=0x8078540) at kernel/qeventdispatcher_glib.cpp:184
#32 0xb5943b49 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#33 0xb5944350 in ?? () from /usr/lib/libglib-2.0.so.0
#34 0xb594460e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#35 0xb6400d4b in QEventDispatcherGlib::processEvents (this=0x8075380, flags=...) at kernel/qeventdispatcher_glib.cpp:412
#36 0xb66dc19a in QGuiEventDispatcherGlib::processEvents (this=0x8075380, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#37 0xb63d411d in QEventLoop::processEvents (this=0xbfe6ad94, flags=...) at kernel/qeventloop.cpp:149
#38 0xb63d4319 in QEventLoop::exec (this=0xbfe6ad94, flags=...) at kernel/qeventloop.cpp:201
#39 0xb63d8c70 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#40 0xb6629164 in QApplication::exec () at kernel/qapplication.cpp:3581
#41 0x080504cf in main (argc=) at /usr/src/debug/kdeutils-4.4.3/ark/app/main.cpp:210

Reported using DrKonqi
Comment 1 Rami 2010-06-18 14:58:35 UTC
here is a link to the archive that causes the crash :
http://www.mediafire.com/?zmzy4zji2hu

by the way,the file opens without errors in windows.
Comment 2 Rami 2010-06-18 16:38:18 UTC
One more piece of information:
the archive contains a tar archive inside.
Comment 3 Raphael Kubo da Costa 2010-06-18 16:52:32 UTC
It actually looks related to some extended attributes listed in the archive, such as ":Zone.Identifier" and ":encryptable". Was it you who created the archive?
Comment 4 Rami 2010-06-18 17:39:15 UTC
no, it's not me.
Comment 5 Raphael Kubo da Costa 2010-06-19 18:41:50 UTC
Can you please list all the files you get when you extract this archive on Windows? Does any of them have "Zone.Identifier" or "encryptable" in their names?
Comment 6 Rami 2010-06-19 20:38:40 UTC
folder: NLP3 that contains the following files:
Automatic Evaluation of Summaries Using N-gram Co-Occurrence Statistics.ppt
Duc07.doc
duc07.results.data.tar
NLP09 - Summarization.pdf
README.txt
Thumbs.db
tokenizationAndSegmentation.ppt
Comment 7 Raphael Kubo da Costa 2010-06-20 05:46:13 UTC
SVN commit 1140173 by rkcosta:

Revamp the clirar plugin.

This was prompted by bug 242071: RAR files have this concept of
subheaders, which include comments, NTFS streams and other things I have
no idea since the format is undocumented.

Subheaders can be ignored during the listing, but they confused the old
parser code because they were unexpected and broke the expected listing
pattern.

In order to fix that, we now call unrar with 'vt' instead of just 'v' so
that we get more information. However, this means more lines are output
for each entry, so our "parser" needed to be improved.

The code looks much cleaner and (hopefully) easier to understand now.

Furthermore, the old code probably ignored files whose names started
with '*'. Finally, some TODOs have been added for some aspects we should
watch out when dealing with the code.

BUG: 242071

 M  +90 -41    cliplugin.cpp  
 M  +9 -6      cliplugin.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1140173
Comment 8 Raphael Kubo da Costa 2010-06-20 06:00:58 UTC
SVN commit 1140180 by rkcosta:

Backport r1140173.

Revamp the clirar plugin.

This was prompted by bug 242071: RAR files have this concept of
subheaders, which include comments, NTFS streams and other things I have
no idea since the format is undocumented.

Subheaders can be ignored during the listing, but they confused the old
parser code because they were unexpected and broke the expected listing
pattern.

In order to fix that, we now call unrar with 'vt' instead of just 'v' so
that we get more information. However, this means more lines are output
for each entry, so our "parser" needed to be improved.

The code looks much cleaner and (hopefully) easier to understand now.

Furthermore, the old code probably ignored files whose names started
with '*'. Finally, some TODOs have been added for some aspects we should
watch out when dealing with the code.

CCBUG: 242071

 M  +90 -41    cliplugin.cpp  
 M  +9 -6      cliplugin.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1140180