Report the system error on why chmod(2) failed in XDG_RUNTIME_DIR

This is a very rare occurrence: if the user is the owner of the
directory, the user can chmod(2), and we already checked that the user
is the owner. However, chmod(2) can still fail on read-only fs and on
hardened systems.

Task-number: QTBUG-41735
Change-Id: I8f8bac763bf5a6e575ed59dac55bd265e5b66271
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: David Faure <david.faure@kdab.com>
This commit is contained in:
Thiago Macieira 2014-10-02 11:56:22 -07:00
parent fc2fcacfcc
commit d0ed6dc146

View File

@ -136,7 +136,8 @@ QString QStandardPaths::writableLocation(StandardLocation type)
const QFile::Permissions wantedPerms = QFile::ReadUser | QFile::WriteUser | QFile::ExeUser
| QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner;
if (file.permissions() != wantedPerms && !file.setPermissions(wantedPerms)) {
qWarning("QStandardPaths: wrong permissions on runtime directory %s", qPrintable(xdgRuntimeDir));
qWarning("QStandardPaths: could not set correct permissions on runtime directory %s: %s",
qPrintable(xdgRuntimeDir), qPrintable(file.errorString()));
return QString();
}
return xdgRuntimeDir;