> On Jan. 2, 2012, 10:12 a.m., David Faure wrote: > > Looks good. A bit hard to read, but that's QDir/QFileInfo's fault, not > > yours :) > > > > You don't seem to have a kde contributor account, do you want to get one, > > or should I commit this for you?
I expect to come up with patches only occasionally (a few per year at most thus far), so I guess I don't need an account, unless it is common in kde for even very infrequent contributors to have one. - Anssi ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/103577/#review9428 ----------------------------------------------------------- On Dec. 30, 2011, 2:44 a.m., Anssi Hannula wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://git.reviewboard.kde.org/r/103577/ > ----------------------------------------------------------- > > (Updated Dec. 30, 2011, 2:44 a.m.) > > > Review request for kdelibs. > > > Description > ------- > > KConfigIniBackend::isWritable() tries to handle cases where the config > file doesn't exist and one or more of the deepest directories don't > exist either, in which case 'true' is returned if the deepest directory > is writable. > > However, this fails because the code tries to use QDir::cdUp() to go > upwards until an existing directory is found. As per documentation, > cdUp() will fail when the parent directory doesn't exist, causing > isWritable() to bail out and return false without checking further > parent directories. > > This will cause e.g. KConfig::accessMode() to return ReadOnly if the > configuration directory structure doesn't exist yet, even if the KConfig > is actually writeable (the parent directories are automatically created > by KConfigIniBackend at writing time). This was observed at > https://bugs.mageia.org/show_bug.cgi?id=3601#c10 > > Fix that by walking through the tree using QFileInfo::absolutePath() > instead. > > > Diffs > ----- > > kdecore/config/kconfigini.cpp 5f7ba7c > > Diff: http://git.reviewboard.kde.org/r/103577/diff/diff > > > Testing > ------- > > Built kdelibs 4.7.95 with the patch, the error message in the referenced > Mageia bugreport comment (which is shown when accessMode() returns ReadOnly) > doesn't show up anymore when the ~/.kde4 directory tree doesn't exist. Also, > if I create an empty ~/.kde4 dir without any permissions, the accessMode() > call still returns ReadOnly as expected. > > > Thanks, > > Anssi Hannula > >