Version: (using KDE KDE 3.1.2) Installed from: Mandrake RPMs OS: Linux open konqueror, turn on 'show hidden files',switch to tree view. Descend into a hidden directory (for me it was .kde/share/config/) without entering it (just clicking the '+' ) then unset 'show hidden files'--The Konqueror crashed.
0x40aed79e in KURL::cmp(KURL const&, bool) const () from /opt/kde3/lib/libkdecore.so.4 #5 0x41a5b8b8 in KonqTreeViewWidget::removeSubDir(KURL const&) () from /opt/kde3/lib/kde3/konq_listview.so #6 0x41a5cf02 in KonqTreeViewWidget::slotDeleteItem(KFileItem*) () from /opt/kde3/lib/kde3/konq_listview.so #7 0x41a58ffa in KonqBaseListViewWidget::qt_invoke(int, QUObject*) () from /opt/kde3/lib/kde3/konq_listview.so #8 0x41a5d253 in KonqTreeViewWidget::qt_invoke(int, QUObject*) () from /opt/kde3/lib/kde3/konq_listview.so #9 0x40e70c50 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #10 0x4062ea55 in KDirLister::deleteItem(KFileItem*) () from /opt/kde3/lib/libkio.so.4 #11 0x4062c84a in KDirLister::emitChanges() () from /opt/kde3/lib/libkio.so.4 #12 0x41a4d379 in KonqListView::slotShowDot() () from /opt/kde3/lib/kde3/konq_listview.so #13 0x41a4fd9e in KonqListView::qt_invoke(int, QUObject*) () from /opt/kde3/lib/kde3/konq_listview.so #14 0x40e70c50 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #15 0x40e70a84 in QObject::activate_signal(int) () from /usr/lib/qt3/lib/libqt-mt.so.3 #16 0x4084ebeb in KAction::activated() () from /opt/kde3/lib/libkdeui.so.4 #17 0x40857d1e in KToggleAction::slotActivated() () from /opt/kde3/lib/libkdeui.so.4 #18 0x408613ff in KToggleAction::qt_invoke(int, QUObject*) () from /opt/kde3/lib/libkdeui.so.4 #19 0x40e70c50 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #20 0x41185092 in QSignal::signal(QVariant const&) () from /usr/lib/qt3/lib/libqt-mt.so.3 #21 0x40e8a758 in QSignal::activate() () from /usr/lib/qt3/lib/libqt-mt.so.3 #22 0x40f6e3fd in QPopupMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #23 0x40ea4e3c in QWidget::event(QEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #24 0x40e173d7 in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #25 0x40e16b13 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #26 0x40a5ebf9 in KApplication::notify(QObject*, QEvent*) () from /opt/kde3/lib/libkdecore.so.4 #27 0x40db386d in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #28 0x40db1424 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #29 0x40dc6811 in QEventLoop::processEvents(unsigned) () from /usr/lib/qt3/lib/libqt-mt.so.3 #30 0x40e2a576 in QEventLoop::enterLoop() () from /usr/lib/qt3/lib/libqt-mt.so.3 #31 0x40e2a418 in QEventLoop::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3 #32 0x40e17621 in QApplication::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3 #33 0x417c1222 in kdemain () from /opt/kde3/lib/konqueror.so #34 0x0804cc66 in launch(int, char const*, char const*, char const*, int, char const*, bool, char const*, bool, char const*) () #35 0x0804d8a9 in handle_launcher_request(int) () #36 0x0804dd7c in handle_requests(int) () #37 0x0804ea9a in main () #38 0x41544a17 in __libc_start_main () from /lib/i686/libc.so.6
I should have said this the first time: Thanks a lot for your report, your reproduction instructions are excellent, so this report will likely help a great deal in figuring this and related issues out. I'll re-paste the backtrace now, in case there are other reports with crash but w/o this level of the detail; there is an automatic tool here to search for cases like that, but it didn't work the last time since I cut off a few of the "non-interesting" things it apparently uses to synchronize. [New Thread 16384 (LWP 2089)] 0x413f5727 in waitpid () from /lib/i686/libpthread.so.0 #0 0x413f5727 in waitpid () from /lib/i686/libpthread.so.0 #1 0x40ae7c5d in KCrash::defaultCrashHandler(int) () from /opt/kde3/lib/libkdecore.so.4 #2 0x413f467e in __pthread_sighandler () from /lib/i686/libpthread.so.0 #3 0x41557688 in __libc_sigaction () from /lib/i686/libc.so.6 #4 0x40aed79e in KURL::cmp(KURL const&, bool) const () from /opt/kde3/lib/libkdecore.so.4 #5 0x419a88b8 in KonqTreeViewWidget::removeSubDir(KURL const&) () from /opt/kde3/lib/kde3/konq_listview.so #6 0x419a9f02 in KonqTreeViewWidget::slotDeleteItem(KFileItem*) () from /opt/kde3/lib/kde3/konq_listview.so #7 0x419a5ffa in KonqBaseListViewWidget::qt_invoke(int, QUObject*) () from /opt/kde3/lib/kde3/konq_listview.so #8 0x419aa253 in KonqTreeViewWidget::qt_invoke(int, QUObject*) () from /opt/kde3/lib/kde3/konq_listview.so #9 0x40e70c50 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #10 0x4062ea55 in KDirLister::deleteItem(KFileItem*) () from /opt/kde3/lib/libkio.so.4 #11 0x4062c84a in KDirLister::emitChanges() () from /opt/kde3/lib/libkio.so.4 #12 0x4199a379 in KonqListView::slotShowDot() () from /opt/kde3/lib/kde3/konq_listview.so #13 0x4199cd9e in KonqListView::qt_invoke(int, QUObject*) () from /opt/kde3/lib/kde3/konq_listview.so #14 0x40e70c50 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #15 0x40e70a84 in QObject::activate_signal(int) () from /usr/lib/qt3/lib/libqt-mt.so.3 #16 0x4084ebeb in KAction::activated() () from /opt/kde3/lib/libkdeui.so.4 #17 0x40857d1e in KToggleAction::slotActivated() () from /opt/kde3/lib/libkdeui.so.4 #18 0x408613ff in KToggleAction::qt_invoke(int, QUObject*) () from /opt/kde3/lib/libkdeui.so.4 #19 0x40e70c50 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #20 0x41185092 in QSignal::signal(QVariant const&) () from /usr/lib/qt3/lib/libqt-mt.so.3 #21 0x40e8a758 in QSignal::activate() () from /usr/lib/qt3/lib/libqt-mt.so.3 #22 0x40f6e3fd in QPopupMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #23 0x40ea4e3c in QWidget::event(QEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #24 0x40e173d7 in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #25 0x40e16b13 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #26 0x40a5ebf9 in KApplication::notify(QObject*, QEvent*) () from /opt/kde3/lib/libkdecore.so.4 #27 0x40db386d in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #28 0x40db1424 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #29 0x40dc6811 in QEventLoop::processEvents(unsigned) () from /usr/lib/qt3/lib/libqt-mt.so.3 #30 0x40e2a576 in QEventLoop::enterLoop() () from /usr/lib/qt3/lib/libqt-mt.so.3 #31 0x40e2a418 in QEventLoop::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3 #32 0x40e17621 in QApplication::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3 #33 0x417c1222 in kdemain () from /opt/kde3/lib/konqueror.so #34 0x0804cc66 in launch(int, char const*, char const*, char const*, int, char const*, bool, char const*, bool, char const*) () #35 0x0804d8a9 in handle_launcher_request(int) () #36 0x0804dd7c in handle_requests(int) () #37 0x0804ea9a in main () #38 0x41544a17 in __libc_start_main () from /lib/i686/libc.so.6
Zogje: This one might be of interest to you. ==2145== ==2145== Invalid read of size 4 ==2145== at 0x46BC689B: KonqTreeViewWidget::removeSubDir(KURL const&) (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x46BC7F01: KonqTreeViewWidget::slotDeleteItem(KFileItem*) (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x46BC3FF9: KonqBaseListViewWidget::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x46BC8252: KonqTreeViewWidget::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x40D97C4F: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40544A54: KDirLister::deleteItem(KFileItem*) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==2145== by 0x40542849: KDirLister::emitChanges() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==2145== by 0x46BB8378: KonqListView::slotShowDot() (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x46BBAD9D: KonqListView::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x40D97C4F: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40D97A83: QObject::activate_signal(int) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40764BEA: KAction::activated() (in /code/opt/kde3/lib/libkdeui.so.4.2.0) ==2145== by 0x4076DD1D: KToggleAction::slotActivated() (in /code/opt/kde3/lib/libkdeui.so.4.2.0) ==2145== by 0x407773FE: KToggleAction::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/libkdeui.so.4.2.0) ==2145== by 0x40D97C4F: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x410AC091: QSignal::signal(QVariant const&) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40DB1757: QSignal::activate() (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40E953FC: QPopupMenu::mouseReleaseEvent(QMouseEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40DCBE3B: QWidget::event(QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40D3E3D6: QApplication::internalNotify(QObject*, QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40D3DB12: QApplication::notify(QObject*, QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40975BF8: KApplication::notify(QObject*, QEvent*) (in /code/opt/kde3/lib/libkdecore.so.4.2.0) ==2145== by 0x40CDA86C: QETWidget::translateMouseEvent(_XEvent const*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40CD8423: QApplication::x11ProcessEvent(_XEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40CED810: QEventLoop::processEvents(unsigned) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40D51575: QEventLoop::enterLoop() (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40D51417: QEventLoop::exec() (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40D3E620: QApplication::exec() (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x4023E221: kdemain (in /code/opt/kde3/lib/konqueror.so) ==2145== by 0x80485EA: main (in /code/opt/kde3/bin/konqueror) ==2145== by 0x41440A16: __libc_start_main (in /lib/i686/libc-2.3.2.so) ==2145== by 0x8048530: ??? (start.S:81) ==2145== Address 0x487B0E90 is 52 bytes inside a block of size 64 free'd ==2145== at 0x4015E0E8: __builtin_delete (vg_clientfuncs.c:196) ==2145== by 0x4015E108: operator delete(void*) (vg_clientfuncs.c:205) ==2145== by 0x46BC8E44: KonqListViewDir::~KonqListViewDir() (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x40E6B9D5: QListViewItem::~QListViewItem() (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x407927D9: KListViewItem::~KListViewItem() (in /code/opt/kde3/lib/libkdeui.so.4.2.0) ==2145== by 0x46BC8E3C: KonqListViewDir::~KonqListViewDir() (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x40E6B9D5: QListViewItem::~QListViewItem() (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x407927D9: KListViewItem::~KListViewItem() (in /code/opt/kde3/lib/libkdeui.so.4.2.0) ==2145== by 0x46BC8E3C: KonqListViewDir::~KonqListViewDir() (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x40E6B9D5: QListViewItem::~QListViewItem() (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x407927D9: KListViewItem::~KListViewItem() (in /code/opt/kde3/lib/libkdeui.so.4.2.0) ==2145== by 0x46BC8E3C: KonqListViewDir::~KonqListViewDir() (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x46BC2E6C: KonqBaseListViewWidget::slotDeleteItem(KFileItem*) (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x46BC7F39: KonqTreeViewWidget::slotDeleteItem(KFileItem*) (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x46BC3FF9: KonqBaseListViewWidget::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x46BC8252: KonqTreeViewWidget::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x40D97C4F: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40544A54: KDirLister::deleteItem(KFileItem*) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==2145== by 0x40542849: KDirLister::emitChanges() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==2145== by 0x46BB8378: KonqListView::slotShowDot() (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x46BBAD9D: KonqListView::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/kde3/konq_listview.so) ==2145== by 0x40D97C4F: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40D97A83: QObject::activate_signal(int) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40764BEA: KAction::activated() (in /code/opt/kde3/lib/libkdeui.so.4.2.0) ==2145== by 0x4076DD1D: KToggleAction::slotActivated() (in /code/opt/kde3/lib/libkdeui.so.4.2.0) ==2145== by 0x407773FE: KToggleAction::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/libkdeui.so.4.2.0) ==2145== by 0x40D97C4F: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x410AC091: QSignal::signal(QVariant const&) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40DB1757: QSignal::activate() (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40E953FC: QPopupMenu::mouseReleaseEvent(QMouseEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40DCBE3B: QWidget::event(QEvent*) ( /usr/lib/qt3/lib/libqt-mt.so.3.2.0) ==2145== by 0x40D3E3D6: QApplication::internalNotify(QObject*, QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0)
Subject: kdebase/konqueror/listview CVS commit by waba: CCMAIL: 59062-done@bugs.kde.org Improve tracking of listviewitems so that we don't crash when they get deleted somewhat unexpectedly. (BR59062) M +2 -2 konq_infolistviewitem.cc 1.2 M +10 -38 konq_listview.cc 1.196 M +28 -16 konq_listviewitems.cc 1.56 M +6 -6 konq_listviewitems.h 1.24 M +18 -25 konq_listviewwidget.cc 1.210 M +4 -6 konq_listviewwidget.h 1.79 M +1 -0 konq_treeviewitem.cc 1.15 M +1 -0 konq_treeviewwidget.h 1.16