Bug 281164 - Words/wv2 import filter crashes with .doc file in wvWare::Headers::Headers
Summary: Words/wv2 import filter crashes with .doc file in wvWare::Headers::Headers
Status: RESOLVED FIXED
Alias: None
Product: calligrawords
Classification: Applications
Component: doc (show other bugs)
Version: 2.4-snapshots
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: Matus Uzak
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-01 10:53 UTC by Thomas Fischer
Modified: 2011-09-13 12:36 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Fischer 2011-09-01 10:53:39 UTC
Version:           2.4-snapshots (using KDE 4.6.5) 
OS:                Linux

* This is essentially the same report as Bug 280703, but applied to Calligra Words 2.3.74 instead *

When opening a certain .doc file, the wv2-based import filter crashes Words.
The file's URL is http://www.stuffit.org/why/theriot.doc

Words/wv2 gives the following output on the command line when crashing:

(Soprano::Redland::BackendPlugin) creating model of type "hashes" with options "hash-type='memory',contexts='yes'"                                                                     
words(15387)/kotext TextShapeFactory::newDocumentResourceManager: No KUndo2Stack found in the document resource manager, creating a new one                                            
words(15387)/koffice (filter manager) KoFilterManager::filterAvailable: The library  ""  does not offer a check_ ""  function.                                                         
                                                                                                                                                                                       
words(15387)/winword-filter MSWordOdfImport::convert: ######################## MSWordOdfImport::convert ########################                                                       
words(15387)/winword-filter MSWordOdfImport::convert: created storeout.                                                                                                                
words(15387)/winword-filter MSWordOdfImport::convert: created oasisStore.                                                                                                              
words(15387)/winword-filter MSWordOdfImport::convert: created temp contentWriter and bodyWriter.                                                                                       
KCrash: crashing... crashRecursionCounter = 2                                                                                                                                          
KCrash: Application Name = calligrawords path = /usr/bin pid = 15387                                                                                                                   
KCrash: Arguments: /usr/bin/calligrawords --nocrashhandler                                                                                                                             
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit                                                                                                                 
QSocketNotifier: Invalid socket 14 and type 'Read', disabling...   


The KDE Crash Handler returns:


Application: Words (calligrawords), signal: Segmentation fault
[Current thread is 1 (Thread 0xb34afb00 (LWP 15044))]

Thread 2 (Thread 0xadbfeb70 (LWP 15055)):
#0  0xb5109f87 in clock_gettime () from /lib/librt.so.1
#1  0xb64ccbf7 in do_gettime () at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0xb65a68b6 in QTimerInfoList::updateCurrentTime (this=0x90c4a84) at kernel/qeventdispatcher_unix.cpp:339
#4  0xb65a6b9c in QTimerInfoList::timerWait (this=0x90c4a84, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0xb65a4da5 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xadbfe09c) at kernel/qeventdispatcher_glib.cpp:136
#6  0xb65a4e2f in timerSourcePrepare (source=0x0, timeout=0xb510dff4) at kernel/qeventdispatcher_glib.cpp:169
#7  0xb55b0280 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#8  0xb55b06b4 in ?? () from /usr/lib/libglib-2.0.so.0
#9  0xb55b0c3d in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#10 0xb65a4bdb in QEventDispatcherGlib::processEvents (this=0x954b690, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#11 0xb65735ff in QEventLoop::processEvents (this=0xadbfe270, flags=) at kernel/qeventloop.cpp:149
#12 0xb6573a25 in QEventLoop::exec (this=0xadbfe270, flags=...) at kernel/qeventloop.cpp:201
#13 0xb646d5f9 in QThread::exec (this=0x909c948) at thread/qthread.cpp:492
#14 0xb6550ff2 in QInotifyFileSystemWatcherEngine::run (this=0x909c948) at io/qfilesystemwatcher_inotify.cpp:248
#15 0xb6470427 in QThreadPrivate::start (arg=0x909c948) at thread/qthread_unix.cpp:320
#16 0xb555bb4c in start_thread () from /lib/libpthread.so.0
#17 0xb764f94e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb34afb00 (LWP 15044)):
[KCrash Handler]
#7  0xabd37ea6 in QBasicAtomicInt::operator!= (this=0x1, value=1) at /usr/include/qt4/QtCore/qbasicatomic.h:75
#8  0xabd7a903 in QList<unsigned int>::append (this=0xbfede0f8, t=@0x9c9bf84) at /usr/include/qt4/QtCore/qlist.h:496
#9  0xabd79f0b in wvWare::Headers::Headers (this=0x9c9be78, ccpHdd=9, fcPlcfhdd=5854, lcbPlcfhdd=92, tableStream=0x9c7ff80, version=wvWare::Word8) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/filters/words/msword-odf/wv2/src/headers.cpp:89
#10 0xabd7b43d in wvWare::Headers97::Headers97 (this=0x9c9be78, ccpHdd=9, fcPlcfhdd=5854, lcbPlcfhdd=92, tableStream=0x9c7ff80) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/filters/words/msword-odf/wv2/src/headers97.cpp:24
#11 0xabd5de90 in wvWare::Parser97::init (this=0x9c802a8) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/filters/words/msword-odf/wv2/src/parser97.cpp:42
#12 0xabd5dfc0 in wvWare::Parser97::Parser97 (this=0x9c802a8, storage=0x9bed3c8, wordDocument=0x9c7fe10) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/filters/words/msword-odf/wv2/src/parser97.cpp:32
#13 0xabd5e386 in (anonymous namespace)::setupParser (storage=0x9bed3c8) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/filters/words/msword-odf/wv2/src/parserfactory.cpp:112
#14 0xabd5edf8 in wvWare::ParserFactory::createParser (fileName=...) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/filters/words/msword-odf/wv2/src/parserfactory.cpp:135
#15 0xabe31606 in Document::Document (this=0x9bf7720, fileName=..., filter=0x9bf68c0, bodyWriter=0x9c106d8, metaWriter=0xbfedeb60, manifestWriter=0xbfedeb58, store=0x9c51780, mainStyles=0x9c0ff98, wordDocument=..., table=..., data=0x94a0318) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/filters/words/msword-odf/document.cpp:90
#16 0xabe27cb0 in MSWordOdfImport::convert (this=0x9bf68c0, from=..., to=...) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/filters/words/msword-odf/mswordodfimport.cpp:208
#17 0xb74f5ff9 in CalligraFilter::ChainLink::invokeFilter (this=0x9c1e5c0, parentChainLink=0x0) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/libs/main/KoFilterChainLink.cpp:90
#18 0xb74ee4e7 in KoFilterChain::invokeChain (this=0x9b1a320) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/libs/main/KoFilterChain.cpp:94
#19 0xb74eb25b in KoFilterManager::importDocument (this=0x9c2fc48, url=..., documentMimeType=..., status=@0xbfedeec8) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/libs/main/KoFilterManager.cpp:170
#20 0xb749a963 in KoDocument::openFile (this=0x90c8358) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/libs/main/KoDocument.cpp:1503
#21 0xb62ef9b0 in KParts::ReadOnlyPartPrivate::openLocalFile (this=0x8fc8530) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/kparts/part.cpp:592
#22 0xb62efce7 in KParts::ReadOnlyPart::openUrl (this=0x90c8358, url=...) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/kparts/part.cpp:556
#23 0xb749c53c in KoDocument::openUrl (this=0x90c8358, _url=...) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/libs/main/KoDocument.cpp:1262
#24 0xb74940b5 in KoDocument::openExistingFile (this=0x90c8358, url=...) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/libs/main/KoDocument.cpp:2604
#25 0xb749f612 in KoDocument::qt_metacall (this=0x90c8358, _c=QMetaObject::InvokeMetaMethod, _id=15, _a=0xbfedf2f8) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74_build/libs/main/KoDocument.moc:131
#26 0xb0e20467 in KWDocument::qt_metacall (this=0x90c8358, _c=QMetaObject::InvokeMetaMethod, _id=35, _a=0xbfedf2f8) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74_build/words/part/moc_KWDocument.cpp:95
#27 0xb657c093 in QMetaObject::metacall (object=0x90c8358, cl=QMetaObject::InvokeMetaMethod, idx=35, argv=0xbfedf2f8) at kernel/qmetaobject.cpp:237
#28 0xb658f460 in QMetaObject::activate (sender=0x99a1dd0, m=0xb7582fc8, local_signal_index=0, argv=0x1) at kernel/qobject.cpp:3278
#29 0xb750ae6e in KoOpenPane::openExistingFile (this=0x99a1dd0, _t1=...) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74_build/libs/main/KoOpenPane.moc:104
#30 0xb750b1e0 in KoOpenPane::qt_metacall (this=0x99a1dd0, _c=QMetaObject::InvokeMetaMethod, _id=27, _a=0xbfedf448) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74_build/libs/main/KoOpenPane.moc:86
#31 0xb657c093 in QMetaObject::metacall (object=0x99a1dd0, cl=QMetaObject::InvokeMetaMethod, idx=27, argv=0xbfedf448) at kernel/qmetaobject.cpp:237
#32 0xb658f460 in QMetaObject::activate (sender=0x9929df8, m=0xb7582ea8, local_signal_index=0, argv=0x1) at kernel/qobject.cpp:3278
#33 0xb750a5a4 in KoExistingDocumentPane::openExistingUrl (this=0x9929df8, _t1=...) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74_build/libs/main/KoExistingDocumentPane.moc:89
#34 0xb750a68c in KoExistingDocumentPane::onAccepted (this=0x9929df8) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/libs/main/KoExistingDocumentPane.cpp:56
#35 0xb750a715 in KoExistingDocumentPane::qt_metacall (this=0x9929df8, _c=QMetaObject::InvokeMetaMethod, _id=28, _a=0xbfedf59c) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74_build/libs/main/KoExistingDocumentPane.moc:77
#36 0xb657c093 in QMetaObject::metacall (object=0x9929df8, cl=QMetaObject::InvokeMetaMethod, idx=28, argv=0xbfedf59c) at kernel/qmetaobject.cpp:237
#37 0xb658f460 in QMetaObject::activate (sender=0x99d0460, m=0xb62cd950, local_signal_index=6, argv=0x1) at kernel/qobject.cpp:3278
#38 0xb6276808 in KFileWidget::accepted (this=0x99d0460) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5_build/kfile/kfilewidget.moc:206
#39 0xb627df08 in KFileWidget::slotOk (this=0x99d0460) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/kfile/kfilewidget.cpp:997
#40 0xb627c7d5 in KFileWidgetPrivate::_k_fileSelected (this=0x946dd88, i=...) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/kfile/kfilewidget.cpp:1106
#41 0xb627ffbc in KFileWidget::qt_metacall (this=0x99d0460, _c=QMetaObject::InvokeMetaMethod, _id=44, _a=0xbfedf958) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5_build/kfile/kfilewidget.moc:143
#42 0xb657c093 in QMetaObject::metacall (object=0x99d0460, cl=QMetaObject::InvokeMetaMethod, idx=44, argv=0xbfedf958) at kernel/qmetaobject.cpp:237
#43 0xb658f460 in QMetaObject::activate (sender=0x91e5f10, m=0xb62ccf94, local_signal_index=7, argv=0x1) at kernel/qobject.cpp:3278
#44 0xb625a536 in KDirOperator::fileSelected (this=0x91e5f10, _t1=...) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5_build/kfile/kdiroperator.moc:321
#45 0xb625f964 in KDirOperator::selectFile (this=0x91e5f10, item=...) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/kfile/kdiroperator.cpp:1709
#46 0xb625fa86 in KDirOperator::Private::_k_slotActivated (this=0x9629138, index=...) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/kfile/kdiroperator.cpp:2364
#47 0xb62653fd in KDirOperator::qt_metacall (this=0x91e5f10, _c=QMetaObject::InvokeMetaMethod, _id=59, _a=0xbfedfb28) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5_build/kfile/kdiroperator.moc:250
#48 0xb657c093 in QMetaObject::metacall (object=0x91e5f10, cl=QMetaObject::InvokeMetaMethod, idx=86, argv=0xbfedfb28) at kernel/qmetaobject.cpp:237
#49 0xb658f460 in QMetaObject::activate (sender=0x9534c00, m=0xb7428244, local_signal_index=3, argv=0x1) at kernel/qobject.cpp:3278
#50 0xb70447ec in QAbstractItemView::activated (this=0x9534c00, _t1=...) at .moc/debug-shared/moc_qabstractitemview.cpp:345
#51 0xb70476c3 in QAbstractItemView::mouseDoubleClickEvent (this=0x9534c00, event=0xbfee0544) at itemviews/qabstractitemview.cpp:1833
#52 0xb6ab46ec in QWidget::event (this=0x9534c00, event=0xbfee0544) at kernel/qwidget.cpp:8263
#53 0xb6ef8afa in QFrame::event (this=0x9534c00, e=0xbfee0544) at widgets/qframe.cpp:557
#54 0xb6f962e7 in QAbstractScrollArea::viewportEvent (this=0x8, e=0xbfede0f8) at widgets/qabstractscrollarea.cpp:1043
#55 0xb7055d15 in QAbstractItemView::viewportEvent (this=0x9534c00, event=0xbfee0544) at itemviews/qabstractitemview.cpp:1628
#56 0xb6f98c26 in viewportEvent (this=0x9b2b7a8, o=0x999e940, e=0xbfee0544) at widgets/qabstractscrollarea_p.h:100
#57 QAbstractScrollAreaFilter::eventFilter (this=0x9b2b7a8, o=0x999e940, e=0xbfee0544) at widgets/qabstractscrollarea_p.h:116
#58 0xb65747ce in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x8fb4e70, receiver=0x999e940, event=0xbfee0544) at kernel/qcoreapplication.cpp:846
#59 0xb6a538ff in QApplicationPrivate::notify_helper (this=0x8fb4e70, receiver=0x999e940, e=0xbfee0544) at kernel/qapplication.cpp:4458
#60 0xb6a5ba9a in QApplication::notify (this=0xbfee0d14, receiver=0x999e940, e=0xbfee0544) at kernel/qapplication.cpp:4023
#61 0xb5908845 in KApplication::notify (this=0xbfee0d14, receiver=0x999e940, event=0xbfee0544) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/kdeui/kernel/kapplication.cpp:311
#62 0xb6574b25 in QCoreApplication::notifyInternal (this=0xbfee0d14, receiver=0x999e940, event=0xbfee0544) at kernel/qcoreapplication.cpp:731
#63 0xb6a575a2 in sendSpontaneousEvent (receiver=0x999e940, event=0xbfee0544, alienWidget=0x999e940, nativeWidget=0x919caa8, buttonDown=0xb7437ca0, lastMouseReceiver=..., spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#64 QApplicationPrivate::sendMouseEvent (receiver=0x999e940, event=0xbfee0544, alienWidget=0x999e940, nativeWidget=0x919caa8, buttonDown=0xb7437ca0, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3120
#65 0xb6aece72 in QETWidget::translateMouseEvent (this=0x919caa8, event=0xbfee09b0) at kernel/qapplication_x11.cpp:4461
#66 0xb6aebea2 in QApplication::x11ProcessEvent (this=0xbfee0d14, event=0xbfee09b0) at kernel/qapplication_x11.cpp:3465
#67 0xb6b191b3 in x11EventSourceDispatch (s=0x8fb24b0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#68 0xb55ac990 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#69 0xb55b0a88 in ?? () from /usr/lib/libglib-2.0.so.0
#70 0xb55b0c3d in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#71 0xb65a4ba6 in QEventDispatcherGlib::processEvents (this=0x8faf820, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#72 0xb6b18a7c in QGuiEventDispatcherGlib::processEvents (this=0x8faf820, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#73 0xb65735ff in QEventLoop::processEvents (this=0xbfee0ca4, flags=) at kernel/qeventloop.cpp:149
#74 0xb6573a25 in QEventLoop::exec (this=0xbfee0ca4, flags=...) at kernel/qeventloop.cpp:201
#75 0xb6576432 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008
#76 0xb6a52096 in QApplication::exec () at kernel/qapplication.cpp:3736
#77 0xb76db8c1 in kdemain (argc=2, argv=0xbfee0e34) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74/words/part/main.cpp:43
#78 0x080486a7 in main (argc=2, argv=0xbfee0e34) at /var/tmp/portage/app-office/calligra-2.3.74/work/calligra-2.3.74_build/words/part/calligrawords_dummy.cpp:3


Reproducible: Always

Steps to Reproduce:
Open file http://www.stuffit.org/why/theriot.doc (too big to be attached to bug report)

Actual Results:  
Words crashes as described above

Expected Results:  
Words does not crash but instead opens the file
Comment 1 Sebastian Sauer 2011-09-02 11:27:30 UTC
See comment 2 at bug 281112 which has a patch attached that solves this issue too.
Comment 2 Sebastian Sauer 2011-09-02 11:28:03 UTC

*** This bug has been marked as a duplicate of bug 281112 ***
Comment 3 Matus Uzak 2011-09-07 09:07:50 UTC
Git commit 3e38e48b682a57b76ad1056ce587958e252dd56d by Matus Uzak.
Committed on 06/09/2011 at 19:03.
Pushed by uzak into branch 'master'.

DOC: Improved validation of the Header document.

* Check for missing header/footer stories and append empty ones if required.
* Use a different logic for Word6/Word7 and Word8 files.

BUG:281112
BUG:281164

M  +94   -42   filters/words/msword-odf/wv2/src/headers.cpp
M  +3    -2    filters/words/msword-odf/wv2/src/headers.h
M  +4    -2    filters/words/msword-odf/wv2/src/headers95.cpp
M  +2    -1    filters/words/msword-odf/wv2/src/headers95.h
M  +3    -2    filters/words/msword-odf/wv2/src/headers97.cpp
M  +2    -1    filters/words/msword-odf/wv2/src/headers97.h
M  +3    -1    filters/words/msword-odf/wv2/src/parser95.cpp
M  +3    -1    filters/words/msword-odf/wv2/src/parser97.cpp

http://commits.kde.org/calligra/3e38e48b682a57b76ad1056ce587958e252dd56d
Comment 4 swathi 2011-09-13 12:36:59 UTC
In git commit 79697867a34448f3472bbd3243247cb141ee11bf,document opened with out any crash.