Bug 74946 - konqueror crashes browsing (ftp-ing) ftp.belnet.be (backtrace)
Summary: konqueror crashes browsing (ftp-ing) ftp.belnet.be (backtrace)
Status: RESOLVED FIXED
Alias: None
Product: konqueror
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Konqueror Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-02-11 13:36 UTC by Andreas Leuner
Modified: 2004-03-04 21:27 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
backtrace for the crash (2.60 KB, application/x-gzip)
2004-02-11 13:38 UTC, Andreas Leuner
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Leuner 2004-02-11 13:36:10 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc-3.3.1 kde compiled with --enable-fast-malloc=full --enable-debug=full
OS:          Linux

Hi all,
I can reliably make konqueror crash with the following procedure:

1. start konqueror
2. open (ftp://)ftp.belnet.be
3. switch to treeview mode, if not already shown
4. only by expanding trees, navigate to 
4.1. "mirror -> ftp.gnome.org -> sources -> somesubdir1 -> somesubdir2"
4.2. collapse "somesubdir1 -> somesubdir2"
4.3. expand "gtk+ -> 2.2"
4.4. collapse "gtk+ -> 2.2"
4.5. expand "somesubdir3 -> somesubdir4"
4.6. collapse "somesubdir3 -> somesubdir4"
4.7. expand "libxml2 -> 2.6"
4.8. collapse "libxml2 -> 2.6"
5. Now change directory to "mirror -> ftp.gnome.org -> sources" by clicking at the directory name "sources" (or at "ftp.gnome.org" or "mirrors") in the treeview

Konqueror crashes.

I'll add the backtrace (slightly edited) as a gzipped attachment since it is quite big.
Comment 1 Andreas Leuner 2004-02-11 13:38:36 UTC
Created attachment 4636 [details]
backtrace for the crash
Comment 2 Stephan Kulow 2004-02-11 13:46:47 UTC
as you have everything with debug: try under valgrind (and paste right into the comment field - makes full text searches possible)
Comment 3 Stephan Kulow 2004-02-11 13:47:57 UTC
The minute I said that ;)

==29859== Invalid read of size 4
==29859==    at 0x4028BB3C: QString::length() const (qstring.h:876)
==29859==    by 0x40B4AB2B: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1257)
==29859==    by 0x40B4BAA9: KURL::url(int, int) const (kurl.cpp:1452)
==29859==    by 0x4C901ED6: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==29859==    by 0x4C901C4C: KonqListViewDir::~KonqListViewDir() (konq_treeviewitem.cc:49)
==29859==    by 0x4183E747: QListView::clear() (qlistview.cpp:3211)
==29859==    by 0x4C8F9960: KonqBaseListViewWidget::slotClear() (konq_listviewwidget.cc:996)
==29859==    by 0x4C90034D: KonqTreeViewWidget::slotClear() (konq_treeviewwidget.cc:181)
==29859==    by 0x4C8FAB96: KonqBaseListViewWidget::qt_invoke(int, QUObject*) (konq_listviewwidget.moc:171)
==29859==    by 0x4C900E42: KonqTreeViewWidget::qt_invoke(int, QUObject*) (konq_treeviewwidget.moc:118)
==29859==    by 0x417530A6: QObject::activate_signal(QConnectionList*, QUObject*) (qobject.cpp:2359)
==29859==    by 0x41752F45: QObject::activate_signal(int) (qobject.cpp:2328)
==29859==    by 0x405E7332: KDirLister::clear() (kdirlister.moc:286)
==29859==    by 0x405DED17: KDirListerCache::forgetDirs(KDirLister*) (kdirlister.cpp:425)
==29859==    Address 0x47606384 is 40 bytes inside a block of size 124 free'd
==29859==    at 0x40014003: __builtin_delete (in /usr/lib/valgrind/vgskin_memcheck.so)
==29859==    by 0x40014021: operator delete(void*) (in /usr/lib/valgrind/vgskin_memcheck.so)
==29859==    by 0x405D8EA6: KFileItem::~KFileItem() (kfileitem.cpp:168)
==29859==    by 0x402A3ED2: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==29859==    by 0x41A2290A: QGList::clear() (qglist.cpp:701)
==29859==    by 0x402A3B4B: QPtrList<KFileItem>::clear() (qptrlist.h:93)
==29859==    by 0x402A3E55: QPtrList<KFileItem>::~QPtrList() (qptrlist.h:70)
==29859==    by 0x405EBB06: KDirListerCache::DirItem::~DirItem() (kdirlister_p.h:236)
==29859==    by 0x405EC31A: QCache<KDirListerCache::DirItem>::deleteItem(void*) (qcache.h:90)
==29859==    by 0x41A1CA6E: QGCache::makeRoomFor(int, int) (qgcache.cpp:624)
==29859==    by 0x41A1C0C5: QGCache::insert_string(QString const&, void*, int, int) (qgcache.cpp:371)
==29859==    by 0x405E9207: QCache<KDirListerCache::DirItem>::insert(QString const&, KDirListerCache::DirItem const*, int, int) (qcache.h:68)
==29859==    by 0x405DF127: KDirListerCache::forgetDirs(KDirLister*, KURL const&, bool) (kdirlister.cpp:475)
==29859==    by 0x405DECF8: KDirListerCache::forgetDirs(KDirLister*) (kdirlister.cpp:422)
Comment 4 Andreas Leuner 2004-02-11 14:46:23 UTC
Hmm... That would have taken much longer for me. 
I'd have to install valgrind first and then get me to work with it.

Maybe next time :)

>and paste right into the comment field - makes full text searches possible
I knew something was wrong about attaching the bt ...
Comment 5 Andreas Leuner 2004-02-26 12:53:00 UTC
I have retested this with KDE CVS_HEAD of 20040224. I can still reproduce the crash with the procedure. However running konqi under valgrind the crash does _not_ happen, although valgrind detects a number of errors. Could this be because of "--enable-fast-malloc" with the kde build?
OK, this is the valgrind log (I do not yet know what to concentrate on with valgrind so I just post all of the output) :
-------------------------------------------------------------------------------
==24620== Memcheck, a memory error detector for x86-linux.
==24620== Copyright (C) 2002-2003, and GNU GPL'd, by Julian Seward.
==24620== Using valgrind-2.1.0, a program supervision framework for x86-linux.
==24620== Copyright (C) 2000-2003, and GNU GPL'd, by Julian Seward.
==24620== 
==24620== My PID = 24620, parent PID = 24558.  Prog and args are:
==24620==    konqueror
==24620== Estimated CPU clock rate is 648 MHz
==24620== For more details, rerun with: -v
==24620== 
==24620== Conditional jump or move depends on uninitialised value(s)
==24620==    at 0x40ADD252: kDebugBackend(unsigned short, unsigned, char const*) (kdebug.cpp:257)
==24620==    by 0x40ADB9B0: kdbgstream::flush() (kdebug.cpp:335)
==24620==    by 0x402908C9: kdbgstream::operator<<(char const*) (kdebug.h:224)
==24620==    by 0x4029098B: endl(kdbgstream&) (kdebug.h:406)
==24620== 
==24620== Conditional jump or move depends on uninitialised value(s)
==24620==    at 0x40ADD258: kDebugBackend(unsigned short, unsigned, char const*) (kdebug.cpp:257)
==24620==    by 0x40ADB9B0: kdbgstream::flush() (kdebug.cpp:335)
==24620==    by 0x402908C9: kdbgstream::operator<<(char const*) (kdebug.h:224)
==24620==    by 0x4029098B: endl(kdbgstream&) (kdebug.h:406)
==24620== 

... this is where the crash would start (after I click on a directory name) without valgrind

==24620== Invalid read of size 1
==24620==    at 0x40B56DA7: KURL::url(int, int) const (kurl.cpp:1407)
==24620==    by 0x4DFBBE12: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==24620==    by 0x4DFBBBBE: KonqListViewDir::~KonqListViewDir() (konq_treeviewitem.cc:49)
==24620==    by 0x4104DF27: QListViewItem::~QListViewItem() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==  Address 0x4D522F80 is 36 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x4122BD56: QString::QString(QString const&) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x4DFBBE12: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==24620==    by 0x4DFBBBBE: KonqListViewDir::~KonqListViewDir() (konq_treeviewitem.cc:49)
==24620==    by 0x4104DF27: QListViewItem::~QListViewItem() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==  Address 0x4D522F64 is 8 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x40290EB6: QString::length() const (qstring.h:880)
==24620==    by 0x40B5CFD1: KURL::hasHost() const (kurl.h:338)
==24620==    by 0x40B56DFA: KURL::url(int, int) const (kurl.cpp:1419)
==24620==    by 0x4DFBBE12: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==24620==  Address 0x4D522F70 is 20 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x40290EB6: QString::length() const (qstring.h:880)
==24620==    by 0x405608B1: KURL::hasUser() const (kurl.h:297)
==24620==    by 0x40B56EDE: KURL::url(int, int) const (kurl.cpp:1422)
==24620==    by 0x4DFBBE12: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==24620==  Address 0x4D522F68 is 12 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 1
==24620==    at 0x40B56EE7: KURL::url(int, int) const (kurl.cpp:1432)
==24620==    by 0x4DFBBE12: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==24620==    by 0x4DFBBBBE: KonqListViewDir::~KonqListViewDir() (konq_treeviewitem.cc:49)
==24620==    by 0x4104DF27: QListViewItem::~QListViewItem() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==  Address 0x4D522F80 is 36 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x4122E54E: QString::find(QChar, int, bool) const (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402EFC9F: QString::find(char, int, bool) const (qstring.h:994)
==24620==    by 0x40B56F31: KURL::url(int, int) const (kurl.cpp:1434)
==24620==    by 0x4DFBBE12: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==24620==  Address 0x4D522F70 is 20 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x40290EB6: QString::length() const (qstring.h:880)
==24620==    by 0x40CEAD6F: QtAddon::QResolver::domainToAscii(QString const&) (qresolver.cpp:875)
==24620==    by 0x40BBF158: KIDNA::toAsciiCString(QString const&) (kidna.cpp:29)
==24620==    by 0x40BBF19E: KIDNA::toAscii(QString const&) (kidna.cpp:34)
==24620==  Address 0x4D522F70 is 20 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x40291260: QString::at(unsigned) const (qstring.h:638)
==24620==    by 0x402B152F: QString::operator[](int) const (qstring.h:639)
==24620==    by 0x40CEB158: splitLabels(QString const&) (qresolver.cpp:967)
==24620==    by 0x40CEAD6F: QtAddon::QResolver::domainToAscii(QString const&) (qresolver.cpp:875)
==24620==  Address 0x4D522F70 is 20 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x412305A3: QString::mid(unsigned, unsigned) const (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40CEB1A8: splitLabels(QString const&) (qresolver.cpp:975)
==24620==    by 0x40CEAD6F: QtAddon::QResolver::domainToAscii(QString const&) (qresolver.cpp:875)
==24620==    by 0x40BBF158: KIDNA::toAsciiCString(QString const&) (kidna.cpp:29)
==24620==  Address 0x4D522F70 is 20 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x412305A3: QString::mid(unsigned, unsigned) const (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40CEB202: splitLabels(QString const&) (qresolver.cpp:981)
==24620==    by 0x40CEAD6F: QtAddon::QResolver::domainToAscii(QString const&) (qresolver.cpp:875)
==24620==    by 0x40BBF158: KIDNA::toAsciiCString(QString const&) (kidna.cpp:29)
==24620==  Address 0x4D522F70 is 20 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 2
==24620==    at 0x40B56F9B: KURL::url(int, int) const (kurl.cpp:1439)
==24620==    by 0x4DFBBE12: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==24620==    by 0x4DFBBBBE: KonqListViewDir::~KonqListViewDir() (konq_treeviewitem.cc:49)
==24620==    by 0x4104DF27: QListViewItem::~QListViewItem() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==  Address 0x4D522F82 is 38 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 1
==24620==    at 0x40B56E03: KURL::url(int, int) const (kurl.cpp:1451)
==24620==    by 0x4DFBBE12: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==24620==    by 0x4DFBBBBE: KonqListViewDir::~KonqListViewDir() (konq_treeviewitem.cc:49)
==24620==    by 0x4104DF27: QListViewItem::~QListViewItem() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==  Address 0x4D522F80 is 36 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x40290EB6: QString::length() const (qstring.h:880)
==24620==    by 0x40B56033: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1257)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==    by 0x4DFBBE12: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==24620==  Address 0x4D522F84 is 40 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x4122BD56: QString::QString(QString const&) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B5633E: KURL::path(int) const (kurl.cpp:1306)
==24620==    by 0x40B5605E: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1263)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==  Address 0x4D522F74 is 24 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x4122BD5B: QString::QString(QString const&) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B5633E: KURL::path(int) const (kurl.cpp:1306)
==24620==    by 0x40B5605E: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1263)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==  Address 0x4AEAC808 is 0 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x4122BD5B: QString::QString(QString const&) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B56354: KURL::path(int) const (kurl.cpp:1306)
==24620==    by 0x40B5605E: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1263)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==  Address 0x4AEAC808 is 0 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x41235151: operator==(QString const&, char const*) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B5BBF4: trailingSlash(int, QString const&) (kurl.cpp:1231)
==24620==    by 0x40B56354: KURL::path(int) const (kurl.cpp:1306)
==24620==    by 0x40B5605E: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1263)
==24620==  Address 0x4AEAC814 is 12 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x41235154: operator==(QString const&, char const*) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B5BBF4: trailingSlash(int, QString const&) (kurl.cpp:1231)
==24620==    by 0x40B56354: KURL::path(int) const (kurl.cpp:1306)
==24620==    by 0x40B5605E: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1263)
==24620==  Address 0x4AEAC80C is 4 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 2
==24620==    at 0x41235167: operator==(QString const&, char const*) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B5BBF4: trailingSlash(int, QString const&) (kurl.cpp:1231)
==24620==    by 0x40B56354: KURL::path(int) const (kurl.cpp:1306)
==24620==    by 0x40B5605E: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1263)
==24620==  Address 0x4D5264C4 is 0 bytes inside a block of size 128 free'd
==24620==    at 0x4002B5E8: operator delete[](void*) (vg_replace_malloc.c:190)
==24620==    by 0x4122C7D1: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x40290EB8: QString::length() const (qstring.h:880)
==24620==    by 0x40B56354: KURL::path(int) const (kurl.cpp:1306)
==24620==    by 0x40B5605E: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1263)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==  Address 0x4AEAC814 is 12 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x40291262: QString::at(unsigned) const (qstring.h:638)
==24620==    by 0x40290E5F: QString::constref(unsigned) const (qstring.h:644)
==24620==    by 0x40290001: QCharRef::operator QChar() const (qstring.h:777)
==24620==    by 0x40B5BC65: trailingSlash(int, QString const&) (kurl.cpp:1236)
==24620==  Address 0x4AEAC814 is 12 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x4029126E: QString::at(unsigned) const (qstring.h:638)
==24620==    by 0x40290E5F: QString::constref(unsigned) const (qstring.h:644)
==24620==    by 0x40290001: QCharRef::operator QChar() const (qstring.h:777)
==24620==    by 0x40B5BC65: trailingSlash(int, QString const&) (kurl.cpp:1236)
==24620==  Address 0x4AEAC80C is 4 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 2
==24620==    at 0x402912F6: QChar::QChar(QChar const&) (qstring.h:270)
==24620==    by 0x40290E5F: QString::constref(unsigned) const (qstring.h:644)
==24620==    by 0x40290001: QCharRef::operator QChar() const (qstring.h:777)
==24620==    by 0x40B5BC65: trailingSlash(int, QString const&) (kurl.cpp:1236)
==24620==  Address 0x4D52652E is 106 bytes inside a block of size 128 free'd
==24620==    at 0x4002B5E8: operator delete[](void*) (vg_replace_malloc.c:190)
==24620==    by 0x4122C7D1: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x4028FEA8: QShared::deref() (qshared.h:50)
==24620==    by 0x40B5BC1D: trailingSlash(int, QString const&) (kurl.cpp:1236)
==24620==    by 0x40B56354: KURL::path(int) const (kurl.cpp:1306)
==24620==    by 0x40B5605E: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1263)
==24620==  Address 0x4AEAC808 is 0 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid write of size 4
==24620==    at 0x4028FEAD: QShared::deref() (qshared.h:50)
==24620==    by 0x40B5BC1D: trailingSlash(int, QString const&) (kurl.cpp:1236)
==24620==    by 0x40B56354: KURL::path(int) const (kurl.cpp:1306)
==24620==    by 0x40B5605E: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1263)
==24620==  Address 0x4AEAC808 is 0 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x4028FEA8: QShared::deref() (qshared.h:50)
==24620==    by 0x40B5635F: KURL::path(int) const (kurl.cpp:1306)
==24620==    by 0x40B5605E: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1263)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==  Address 0x4AEAC808 is 0 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid write of size 4
==24620==    at 0x4028FEAD: QShared::deref() (qshared.h:50)
==24620==    by 0x40B5635F: KURL::path(int) const (kurl.cpp:1306)
==24620==    by 0x40B5605E: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1263)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==  Address 0x4AEAC808 is 0 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x4122C802: QString::operator=(QString const&) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B56070: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1263)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==    by 0x4DFBBE12: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==24620==  Address 0x4AEAC808 is 0 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x4028FEA8: QShared::deref() (qshared.h:50)
==24620==    by 0x40B5607B: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1263)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==    by 0x4DFBBE12: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==24620==  Address 0x4AEAC808 is 0 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid write of size 4
==24620==    at 0x4028FEAD: QShared::deref() (qshared.h:50)
==24620==    by 0x40B5607B: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1263)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==    by 0x4DFBBE12: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==24620==  Address 0x4AEAC808 is 0 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x412534A7: QTextCodec::fromUnicode(QString const&) const (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x41234758: QString::local8Bit() const (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B5A918: encode(QString const&, bool, int) (kurl.cpp:61)
==24620==    by 0x40B560A0: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1266)
==24620==  Address 0x4AEAC814 is 12 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x41254B56: QLatin15Codec::fromUnicode(QString const&, int&) const (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x412534C9: QTextCodec::fromUnicode(QString const&) const (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x41234758: QString::local8Bit() const (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B5A918: encode(QString const&, bool, int) (kurl.cpp:61)
==24620==  Address 0x4AEAC814 is 12 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x41254B8D: QLatin15Codec::fromUnicode(QString const&, int&) const (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x412534C9: QTextCodec::fromUnicode(QString const&) const (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x41234758: QString::local8Bit() const (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B5A918: encode(QString const&, bool, int) (kurl.cpp:61)
==24620==  Address 0x4AEAC80C is 4 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 2
==24620==    at 0x41254BCD: QLatin15Codec::fromUnicode(QString const&, int&) const (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x412534C9: QTextCodec::fromUnicode(QString const&) const (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x41234758: QString::local8Bit() const (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B5A918: encode(QString const&, bool, int) (kurl.cpp:61)
==24620==  Address 0x4D5264C4 is 0 bytes inside a block of size 128 free'd
==24620==    at 0x4002B5E8: operator delete[](void*) (vg_replace_malloc.c:190)
==24620==    by 0x4122C7D1: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x4122C723: QString::deref() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x4122C80B: QString::operator=(QString const&) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B560AF: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1266)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==  Address 0x4AEAC808 is 0 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid write of size 4
==24620==    at 0x4122C728: QString::deref() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x4122C80B: QString::operator=(QString const&) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B560AF: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1266)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==  Address 0x4AEAC808 is 0 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x4122C73A: QString::deref() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x4122C80B: QString::operator=(QString const&) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B560AF: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1266)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==  Address 0x4AEAC80C is 4 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid free() / delete / delete[]
==24620==    at 0x4002B5E8: operator delete[](void*) (vg_replace_malloc.c:190)
==24620==    by 0x4122C772: QString::deref() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x4122C80B: QString::operator=(QString const&) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B560AF: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1266)
==24620==  Address 0x4D5264C4 is 0 bytes inside a block of size 128 free'd
==24620==    at 0x4002B5E8: operator delete[](void*) (vg_replace_malloc.c:190)
==24620==    by 0x4122C7D1: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x4122C741: QString::deref() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x4122C80B: QString::operator=(QString const&) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B560AF: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1266)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==  Address 0x4AEAC810 is 8 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid free() / delete / delete[]
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C74F: QString::deref() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x4122C80B: QString::operator=(QString const&) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40B560AF: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1266)
==24620==  Address 0x4AEAC808 is 0 bytes inside a block of size 20 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x4122C7B3: QStringData::deleteSelf() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x402900FB: QString::~QString() (qstring.h:848)
==24620==    by 0x40B51495: KURL::~KURL() (kurl.cpp:432)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x402A54B6: QString::unicode() const (qstring.h:653)
==24620==    by 0x40B560C5: KURL::encodedPathAndQuery(int, bool, int) const (kurl.cpp:1270)
==24620==    by 0x40B56E3C: KURL::url(int, int) const (kurl.cpp:1452)
==24620==    by 0x4DFBBE12: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==24620==  Address 0x4D522F7C is 32 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== Invalid read of size 4
==24620==    at 0x402A54B6: QString::unicode() const (qstring.h:653)
==24620==    by 0x40B5D081: KURL::hasRef() const (kurl.h:487)
==24620==    by 0x40B56E5E: KURL::url(int, int) const (kurl.cpp:1456)
==24620==    by 0x4DFBBE12: KonqListViewDir::url(int) (konq_treeviewitem.cc:107)
==24620==  Address 0x4D522F78 is 28 bytes inside a block of size 124 free'd
==24620==    at 0x4002B48E: operator delete(void*) (vg_replace_malloc.c:188)
==24620==    by 0x405DAD98: KFileItem::~KFileItem() (kfileitem.cpp:168)
==24620==    by 0x402A578D: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150)
==24620==    by 0x412192C5: QGList::clear() (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== warning: Valgrind's pthread_cond_destroy is incomplete
==24620==          (it doesn't check if the cond is waited on)
==24620==          your program may misbehave as a result
==24620== 
==24620== ERROR SUMMARY: 314 errors from 44 contexts (suppressed: 558 from 10)
==24620== malloc/free: in use at exit: 268122 bytes in 6402 blocks.
==24620== malloc/free: 982602 allocs, 976203 frees, 36767402 bytes allocated.
==24620== For counts of detected errors, rerun with: -v
==24620== searching for pointers to 6402 not-freed blocks.
==24620== checked 33225180 bytes.
==24620== 
==24620== 
==24620== 4 bytes in 1 blocks are definitely lost in loss record 35 of 294
==24620==    at 0x4002B6AD: calloc (vg_replace_malloc.c:201)
==24620==    by 0x41834AB0: XF86DRIGetClientDriverName (in /usr/X11R6/lib/libGL.so.1.2)
==24620==    by 0x454ACDD7: __driUtilCreateScreen (in /usr/X11R6/lib/modules/dri/mga_dri.so)
==24620==    by 0x455F0414: __driCreateScreen (in /usr/X11R6/lib/modules/dri/mga_dri.so)
==24620== 
==24620== 
==24620== 16 bytes in 1 blocks are definitely lost in loss record 79 of 294
==24620==    at 0x4002AC16: malloc (vg_replace_malloc.c:160)
==24620==    by 0x41443AEE: XrmGetStringDatabase (in /usr/X11R6/lib/libX11.so.6.2)
==24620==    by 0x41428887: InitDefaults (in /usr/X11R6/lib/libX11.so.6.2)
==24620==    by 0x4142852D: XGetDefault (in /usr/X11R6/lib/libX11.so.6.2)
==24620== 
==24620== 
==24620== 16 bytes in 1 blocks are definitely lost in loss record 81 of 294
==24620==    at 0x4002AC16: malloc (vg_replace_malloc.c:160)
==24620==    by 0x41835AC4: driCreateDisplay (in /usr/X11R6/lib/libGL.so.1.2)
==24620==    by 0x41828B7D: __glXInitialize (in /usr/X11R6/lib/libGL.so.1.2)
==24620==    by 0x418265DF: glXGetConfig (in /usr/X11R6/lib/libGL.so.1.2)
==24620== 
==24620== 
==24620== 16 bytes in 1 blocks are definitely lost in loss record 82 of 294
==24620==    at 0x4002AC16: malloc (vg_replace_malloc.c:160)
==24620==    by 0x4002B76E: realloc (vg_replace_malloc.c:219)
==24620==    by 0x4168B09B: __argz_append (in /lib/libc.so.6)
==24620==    by 0x41636D85: __newlocale (in /lib/libc.so.6)
==24620== 
==24620== 
==24620== 20 bytes in 1 blocks are definitely lost in loss record 86 of 294
==24620==    at 0x4002AC16: malloc (vg_replace_malloc.c:160)
==24620==    by 0x417060E8: xdr_reference (in /lib/libc.so.6)
==24620==    by 0x41700FB6: xdr_pmaplist (in /lib/libc.so.6)
==24620==    by 0x416FF5DF: clnttcp_call (in /lib/libc.so.6)
==24620== 
==24620== 
==24620== 32 bytes in 2 blocks are definitely lost in loss record 119 of 294
==24620==    at 0x4002AC16: malloc (vg_replace_malloc.c:160)
==24620==    by 0x418E2EE2: FcPatternCreate (in /usr/local/lib/libfontconfig.so.1.0.4)
==24620==    by 0x418E4608: FcPatternDuplicate (in /usr/local/lib/libfontconfig.so.1.0.4)
==24620==    by 0x40F41DC6: loadEngine(QFont::Script, QFontPrivate const*, QFontDef const&, QtFontFamily*, QtFontFoundry*, QtFontStyle*, QtFontSize*, QtFontEncoding*, bool) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== 
==24620== 52 bytes in 1 blocks are possibly lost in loss record 151 of 294
==24620==    at 0x4002AC16: malloc (vg_replace_malloc.c:160)
==24620==    by 0x41873B88: XftDrawCreateBitmap (in /usr/local/lib/libXft.so.2.1.1)
==24620==    by 0x40ECBFC2: QPixmap::init(int, int, int, bool, QPixmap::Optimization) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40F89828: QPixmap::QPixmap(int, int, int, bool, QPixmap::Optimization) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== 
==24620== 72 bytes in 3 blocks are possibly lost in loss record 167 of 294
==24620==    at 0x4002AE26: operator new(unsigned) (vg_replace_malloc.c:162)
==24620==    by 0x4DFB7B64: KonqListViewItem::setPixmap(int, QPixmap const&) (konq_listviewitems.cc:206)
==24620==    by 0x4DFB784C: KonqListViewItem::setDisabled(bool) (konq_listviewitems.cc:146)
==24620==    by 0x4DFB70EC: KonqListViewItem::updateContents() (konq_listviewitems.cc:53)
==24620== 
==24620== 
==24620== 156 bytes in 3 blocks are definitely lost in loss record 194 of 294
==24620==    at 0x4002AC16: malloc (vg_replace_malloc.c:160)
==24620==    by 0x41873B88: XftDrawCreateBitmap (in /usr/local/lib/libXft.so.2.1.1)
==24620==    by 0x40ECBFC2: QPixmap::init(int, int, int, bool, QPixmap::Optimization) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620==    by 0x40F89AC0: QPixmap::QPixmap(int, int, int, QPixmap::Optimization) (in /usr/lib/qt-x11-free-3.2.1/lib/libqt-mt.so.3.2.1)
==24620== 
==24620== 
==24620== 192 bytes in 12 blocks are definitely lost in loss record 208 of 294
==24620==    at 0x4002AE26: operator new(unsigned) (vg_replace_malloc.c:162)
==24620==    by 0x405C1D0E: KServiceTypeProfile::initStatic() (kuserprofile.cpp:86)
==24620==    by 0x405C1EC0: KServiceTypeProfile::offers(QString const&, QString const&) (kuserprofile.cpp:107)
==24620==    by 0x405A0993: KTrader::query(QString const&, QString const&, QString const&, QString const&) const (ktrader.cpp:129)
==24620== 
==24620== 
==24620== 216 bytes in 1 blocks are definitely lost in loss record 213 of 294
==24620==    at 0x4002AC16: malloc (vg_replace_malloc.c:160)
==24620==    by 0x4B017CC5: _XimOpenIM (in /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2)
==24620==    by 0x4148A39D: _XDynamicOpenIM (in /usr/X11R6/lib/libX11.so.6.2)
==24620==    by 0x4B01748A: _XimRegisterIMInstantiateCallback (in /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2)
==24620== 
==24620== 
==24620== 2084 bytes in 3 blocks are definitely lost in loss record 268 of 294
==24620==    at 0x4002AC16: malloc (vg_replace_malloc.c:160)
==24620==    by 0x454ADF60: drmMalloc (in /usr/X11R6/lib/modules/dri/mga_dri.so)
==24620==    by 0x454AE5B0: drmMapBufs (in /usr/X11R6/lib/modules/dri/mga_dri.so)
==24620==    by 0x455F069A: mgaInitDriver (in /usr/X11R6/lib/modules/dri/mga_dri.so)
==24620== 
==24620== 
==24620== 19392 bytes in 808 blocks are definitely lost in loss record 293 of 294
==24620==    at 0x4002AE26: operator new(unsigned) (vg_replace_malloc.c:162)
==24620==    by 0x4DFB7B64: KonqListViewItem::setPixmap(int, QPixmap const&) (konq_listviewitems.cc:206)
==24620==    by 0x4DFB784C: KonqListViewItem::setDisabled(bool) (konq_listviewitems.cc:146)
==24620==    by 0x4DFB70EC: KonqListViewItem::updateContents() (konq_listviewitems.cc:53)
==24620== 
==24620== LEAK SUMMARY:
==24620==    definitely lost: 22144 bytes in 834 blocks.
==24620==    possibly lost:   124 bytes in 4 blocks.
==24620==    still reachable: 245654 bytes in 5563 blocks.
==24620==         suppressed: 200 bytes in 1 blocks.
==24620== Reachable blocks (those to which a pointer was found) are not shown.
==24620== To see them, rerun with: --show-reachable=yes
-------------------------------------------------------------------------------

I would do more if it is needed, but I could use some hint what.
Comment 6 Stephan Kulow 2004-02-26 13:25:33 UTC
use --num-callers=42 with valgrind, your valgrind logs are pretty useless with the default of 4 ;(
Comment 7 Andreas Leuner 2004-02-27 16:32:55 UTC
OK I did so. The output is ~440kB in size so find it at http://www.wh2.tu-dresden.de/~almighty/ .
Comment 8 Waldo Bastian 2004-02-29 17:07:33 UTC
The m_fileitem that KonqListViewDir references has been deleted by KDirLister already before KDirLister emits clear().
So when KonqListViewDir gets destructed from slotClear it calls url(-1) which references m_fileitem and *boom*
Comment 9 Waldo Bastian 2004-03-02 17:22:19 UTC
Fixed by emitting clear() before deleting file-items. (for KDE 3.2.2)
Comment 10 Andreas Leuner 2004-03-04 21:27:30 UTC
I just rebuilt kdelibs and kdebase and this crash is gone.
Thank you very much!