Bug 163501 - Crash with unreadable share/apps/kfileplaces/bookmarks.xml
Summary: Crash with unreadable share/apps/kfileplaces/bookmarks.xml
Status: RESOLVED FIXED
Alias: None
Product: kfile
Classification: Applications
Component: kfileplacesview (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: kdelibs bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-06-08 02:33 UTC by Ivo Anjo
Modified: 2008-07-06 14:41 UTC (History)
0 users

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 Ivo Anjo 2008-06-08 02:33:34 UTC
Version:            (using Devel)
Installed from:    Compiled sources
OS:                Linux

Recently the open/save dialog on all kde apps started crashing on me, and dolphin too.

I was finally able to trace it back to having an unreadable  ~/.kde4/share/apps/kfileplaces/bookmarks.xml that somehow (probably when using sudo or something) got saved with some strange permissions:
$ ls -lah share/apps/kfileplaces/bookmarks.xml
-rw------- 1 root root 1.5K 2008-04-26 22:54 share/apps/kfileplaces/bookmarks.xml

The apps crash with something like this: (from dolphin)
Application: Dolphin (dolphin), signal SIGSEGV
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0xb5f09a80 (LWP 16900)]
[KCrash handler]
#6  0xb65fc355 in QDomNode::~QDomNode () from /usr/lib/libQtXml.so.4
#7  0xb65fc37d in QDomDocument::~QDomDocument () from /usr/lib/libQtXml.so.4
#8  0xb7da6234 in findMetadata (forOwner=@0xbfc73a14, parent=@0xbfc739c8, 
    create=true)
    at /build/buildd/kde4libs-4.0.80/kio/bookmarks/kbookmark.cc:85
#9  0xb7da6424 in KBookmark::metaData (this=0xbfc73b6c, owner=@0xbfc73a14, 
    create=true)
    at /build/buildd/kde4libs-4.0.80/kio/bookmarks/kbookmark.cc:554
#10 0xb7da6480 in KBookmark::setMetaDataItem (this=0xbfc73b6c, 
    key=@0xbfc73a50, value=@0xbfc73a54, mode=KBookmark::OverwriteMetaData)
    at /build/buildd/kde4libs-4.0.80/kio/bookmarks/kbookmark.cc:571
#11 0xb74e4b8d in KFilePlacesItem::createBookmark (manager=0x81d4940, 
    label=@0xbfc73b5c, url=@0xbfc73b20, iconName=@0xbfc73b68)
    at /build/buildd/kde4libs-4.0.80/kfile/kfileplacesitem.cpp:183
#12 0xb74e4c07 in KFilePlacesItem::createSystemBookmark (manager=0x81d4940, 
    label=@0xbfc73b5c, url=@0xbfc73b20, iconName=@0xbfc73b68)
    at /build/buildd/kde4libs-4.0.80/kfile/kfileplacesitem.cpp:193
#13 0xb74e9372 in KFilePlacesModel (this=0x81d4a68, parent=0x0)
    at /build/buildd/kde4libs-4.0.80/kfile/kfileplacesmodel.cpp:94
#14 0xb7ec696a in DolphinSettings::DolphinSettings ()
   from /usr/lib/kde4/lib/libdolphinprivate.so.4
#15 0xb7ec6cad in ?? () from /usr/lib/kde4/lib/libdolphinprivate.so.4
#16 0xb7ec6aa8 in ?? () from /usr/lib/kde4/lib/libdolphinprivate.so.4
#17 0xb7ec6b90 in DolphinSettings::instance ()
   from /usr/lib/kde4/lib/libdolphinprivate.so.4
#18 0x0806da4c in _start ()
#0  0xb7ef5410 in __kernel_vsyscall ()

or this: (from kate)
Application: Kate (kate), signal SIGSEGV
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0xb5e26720 (LWP 16665)]
[KCrash handler]
#6  0x00000049 in ?? ()
#7  0xb664537d in QDomDocument::~QDomDocument () from /usr/lib/libQtXml.so.4
#8  0xb6afb234 in findMetadata (forOwner=@0xbff2b5d4, parent=@0xbff2b588, 
    create=true)
    at /build/buildd/kde4libs-4.0.80/kio/bookmarks/kbookmark.cc:85
#9  0xb6afb424 in KBookmark::metaData (this=0xbff2b718, owner=@0xbff2b5d4, 
    create=true)
    at /build/buildd/kde4libs-4.0.80/kio/bookmarks/kbookmark.cc:554
#10 0xb6afb480 in KBookmark::setMetaDataItem (this=0xbff2b718, 
    key=@0xbff2b610, value=@0xbff2b614, mode=KBookmark::OverwriteMetaData)
    at /build/buildd/kde4libs-4.0.80/kio/bookmarks/kbookmark.cc:571
#11 0xb3e47b8d in KFilePlacesItem::createBookmark (manager=0x8092fa0, 
    label=@0xbff2b710, url=@0xbff2b6d8, iconName=@0xbff2b714)
    at /build/buildd/kde4libs-4.0.80/kfile/kfileplacesitem.cpp:183
#12 0xb3e47c07 in KFilePlacesItem::createSystemBookmark (manager=0x8092fa0, 
    label=@0xbff2b710, url=@0xbff2b6d8, iconName=@0xbff2b714)
    at /build/buildd/kde4libs-4.0.80/kfile/kfileplacesitem.cpp:193
#13 0xb3e4c43b in KFilePlacesModel (this=0x80881b8, parent=0x871cad0)
    at /build/buildd/kde4libs-4.0.80/kfile/kfileplacesmodel.cpp:96
#14 0xb3e42bc5 in KFileWidget (this=0x871cad0, startDir=@0xbff2bab0, 
    parent=0xbff2bb0c)
    at /build/buildd/kde4libs-4.0.80/kfile/kfilewidget.cpp:261
#15 0xb395849b in KFileModule::createFileWidget (this=0x87126b8, 
    startDir=@0xbff2bab0, parent=0xbff2bb0c)
    at /build/buildd/kde4libs-4.0.80/kfile/kfilemodule.cpp:36
#16 0xb6b22a60 in KFileDialog (this=0xbff2bb0c, startDir=@0xbff2bab0, 
    filter=@0xbff2bbb4, parent=0x8214c38, customWidget=0x0)
    at /build/buildd/kde4libs-4.0.80/kio/kfile/kfiledialog.cpp:95
#17 0xb6b1f53b in KEncodingFileDialog (this=0xbff2bb0c, startDir=@0xbff2bbb8, 
    encoding=@0x81a9128, filter=@0xbff2bbb4, caption=@0xbff2bb38, 
    type=KFileDialog::Opening, parent=0x8214c38)
    at /build/buildd/kde4libs-4.0.80/kio/kfile/kencodingfiledialog.cpp:42
#18 0xb6b1fdd2 in KEncodingFileDialog::getOpenUrlsAndEncoding (
    encoding=@0x81a9128, startDir=@0xbff2bbb8, filter=@0xbff2bbb4, 
    parent=0x8214c38, caption=@0xbff2bbb0)
    at /build/buildd/kde4libs-4.0.80/kio/kfile/kencodingfiledialog.cpp:159
#19 0xb7dd034d in ?? () from /usr/lib/kde4/lib/libkateinterfaces.so.4
#20 0xb7dd06d7 in ?? () from /usr/lib/kde4/lib/libkateinterfaces.so.4
#21 0xb7adb4f9 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#22 0xb7adb930 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#23 0xb711edd1 in QAction::triggered () from /usr/lib/libQtGui.so.4
#24 0xb711f79f in QAction::activate () from /usr/lib/libQtGui.so.4
#25 0xb753eae2 in QToolButton::nextCheckState () from /usr/lib/libQtGui.so.4
#26 0xb746579f in ?? () from /usr/lib/libQtGui.so.4
#27 0xb7465a3b in QAbstractButton::mouseReleaseEvent ()
   from /usr/lib/libQtGui.so.4
#28 0xb753ebdc in QToolButton::mouseReleaseEvent ()
   from /usr/lib/libQtGui.so.4
#29 0xb717d4a4 in QWidget::event () from /usr/lib/libQtGui.so.4
#30 0xb7464aff in QAbstractButton::event () from /usr/lib/libQtGui.so.4
#31 0xb753e4b4 in QToolButton::event () from /usr/lib/libQtGui.so.4
#32 0xb7125c0c in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#33 0xb712acd5 in QApplication::notify () from /usr/lib/libQtGui.so.4
#34 0xb6836603 in KApplication::notify (this=0xbff2ccb4, receiver=0x83a4f88, 
    event=0xbff2c2dc)
    at /build/buildd/kde4libs-4.0.80/kdeui/kernel/kapplication.cpp:311
#35 0xb7ac66a9 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#36 0xb7127e21 in QApplicationPrivate::sendMouseEvent ()
   from /usr/lib/libQtGui.so.4
#37 0xb7191ccd in ?? () from /usr/lib/libQtGui.so.4
#38 0xb71906b1 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#39 0xb71b93ba in ?? () from /usr/lib/libQtGui.so.4
#40 0xb644bbf8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#41 0xb644ee5e in ?? () from /usr/lib/libglib-2.0.so.0
#42 0xb644f3ac in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#43 0xb7af1f98 in QEventDispatcherGlib::processEvents ()
   from /usr/lib/libQtCore.so.4
#44 0xb71b91b5 in ?? () from /usr/lib/libQtGui.so.4
#45 0xb7ac592d in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#46 0xb7ac5abd in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#47 0xb7ac7d3d in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#48 0xb7125567 in QApplication::exec () from /usr/lib/libQtGui.so.4
#49 0xb7f6518b in kdemain () from /usr/lib/kde4/lib/libkdeinit4_kate.so
#50 0x08048582 in _start ()
#0  0xb7f6b410 in __kernel_vsyscall ()

I've deleted the file now and everything is back to normal, but the apps shouldn't crash on a unreadable file, and maybe a check if the file is being created with the right permissions too would help.
Comment 1 Daniel Teske 2008-07-06 14:41:43 UTC
SVN commit 828708 by teske:

Fixes: Crashing of open file dialog and dolphin if the file 
KDEHOME/share/apps/kfileplaces/bookmarks.xml is inaccessible.
Mainly adding a few checks for null bookmarks.
BUG: 163501



 M  +7 -2      kfile/kfileplacesitem.cpp  
 M  +8 -7      kfile/kfileplacesmodel.cpp  
 M  +7 -3      kio/bookmarks/kbookmark.cc  


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