Commit 13c063a1 authored by Andrius Štikonas's avatar Andrius Štikonas

Fix a possible null pointer dereference.

On some systems getlogin() function might fail to obtain user name.
For now just check whether pointer is nullptr. In that case suspending
plasma device automounter would not work but at least we will not crash.

In future it might make sense to try to use other methods of obtaining login
name, such as running "who am i".

BUG: 381987
parent 03738022
......@@ -51,8 +51,14 @@ void OperationRunner::run()
// Disable Plasma removable device automounting
unsigned int currentUid = getuid(); // 0 if running as root
unsigned int userId = getpwnam(getlogin())->pw_uid; // uid of original user before sudo
seteuid(userId);
char *login = getlogin();
if (login != nullptr){
passwd* pwnam = getpwnam(login);
if (pwnam != nullptr) {
unsigned int userId = pwnam->pw_uid; // uid of original user before sudo
seteuid(userId);
}
}
QStringList modules;
QDBusConnection bus = QDBusConnection::connectToBus(QDBusConnection::SessionBus, QStringLiteral("sessionBus"));
QDBusInterface kdedInterface( QStringLiteral("org.kde.kded5"), QStringLiteral("/kded"), QStringLiteral("org.kde.kded5"), bus );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment