From kde-core-devel Thu Jan 31 02:51:39 2002 From: Julian Seward Date: Thu, 31 Jan 2002 02:51:39 +0000 To: kde-core-devel Subject: use of uninitialised fields in KDirLister X-MARC-Message: https://marc.info/?l=kde-core-devel&m=101247156712501 KDirLister::setAutoUpdate / ::setDirOnlyMode / ::setShowingDotFiles read uninitialised fields in KDirLister, as a result of the behavior of KDirLister::KDirLister(bool): (line numbers pertain to kdelibs/kio/kio/kdirlister.cpp rev 1.84) Use of uninitialised CPU condition code at 0x40D82F53: KDirLister::setAutoUpdate(bool) (kdirlister.cpp:1130) by 0x40D8224F: KDirLister::KDirLister(bool) (kdirlister.cpp:1079) by 0x40DBDBE9: KDirOperator::KDirOperator(const KURL &, QWidget *, const char *) by 0x40B039A0: KateFileSelector::KateFileSelector(KateMainWindow *, KateViewManager *, QWidget *, const char *) (kat Use of uninitialised CPU condition code at 0x40D82FB8: KDirLister::setDirOnlyMode(bool) (kdirlister.cpp:1157) by 0x40D8225E: KDirLister::KDirLister(bool) (/home/kdebuilder/KdeCVS/qt-copy/include/qobject.h:1080) by 0x40DBDBE9: KDirOperator::KDirOperator(const KURL &, QWidget *, const char *) by 0x40B039A0: KateFileSelector::KateFileSelector(KateMainWindow *, KateViewManager *, QWidget *, const char *) Use of uninitialised CPU condition code at 0x40D82F90: KDirLister::setShowingDotFiles(bool) (kdirlister.cpp:1144) by 0x40D82270: KDirLister::KDirLister(bool) (/home/kdebuilder/KdeCVS/qt-copy/include/qobject.h:208) by 0x40DBDBE9: KDirOperator::KDirOperator(const KURL &, QWidget *, const char *) (/home/kdebuilder/KdeCVS/qt-copy/in by 0x40B039A0: KateFileSelector::KateFileSelector(KateMainWindow *, KateViewManager *, QWidget *, const char *) (kat This happens because KDirLister::setAutoUpdate (and setDirOnlyMode / setShowingDotFiles) test the stored value before updating it (why??), which matters when the stored value is undefined. A simple fix is to initialise these fields in KDirLister::KDirLister(bool). In fact this bug is harmless, but it should be fixed anyway. Suggested patch: =================================================================== RCS file: /home/kde/kdelibs/kio/kio/kdirlister.cpp,v retrieving revision 1.84 diff -u -3 -p -r1.84 kdirlister.cpp --- kdirlister.cpp 2002/01/28 12:03:06 1.84 +++ kdirlister.cpp 2002/01/31 01:54:33 @@ -1075,6 +1075,10 @@ KDirLister::KDirLister( bool _delayedMim d->numJobs = 0; d->rootFileItem = 0; + d->autoUpdate = false; + d->dirOnlyMode = false; + d->isShowingDotFiles = false; + setAutoUpdate( true ); setDirOnlyMode( false ); setShowingDotFiles( false );