Review Request: Fix KConfigIniBackend::isWritable() when the parent directory doesn't exist

Commit Hook null at kde.org
Wed Jan 4 23:53:43 GMT 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/103577/#review9557
-----------------------------------------------------------


This review has been submitted with commit f8f07161e04f8ffececade97e8deaef7385dbaec by David Faure to branch KDE/4.8.

- Commit Hook


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
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20120104/e29c4e50/attachment.htm>


More information about the kde-core-devel mailing list