Skip to content

Commit 476fc8a

Browse files
committed
Insert only those environment variables which does exist.
1 parent 80c3a87 commit 476fc8a

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

src/daemon/Greeter.cpp

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -124,20 +124,12 @@ namespace SDDM {
124124
// greeter environment
125125
QProcessEnvironment env;
126126
QProcessEnvironment sysenv = QProcessEnvironment::systemEnvironment();
127-
env.insert("LANG", sysenv.value("LANG"));
128-
env.insert("LANGUAGE", sysenv.value("LANGUAGE"));
129-
env.insert("LC_CTYPE", sysenv.value("LC_CTYPE"));
130-
env.insert("LC_NUMERIC", sysenv.value("LC_NUMERIC"));
131-
env.insert("LC_TIME", sysenv.value("LC_TIME"));
132-
env.insert("LC_COLLATE", sysenv.value("LC_COLLATE"));
133-
env.insert("LC_MONETARY", sysenv.value("LC_MONETARY"));
134-
env.insert("LC_MESSAGES", sysenv.value("LC_MESSAGES"));
135-
env.insert("LC_PAPER", sysenv.value("LC_PAPER"));
136-
env.insert("LC_NAME", sysenv.value("LC_NAME"));
137-
env.insert("LC_ADDRESS", sysenv.value("LC_ADDRESS"));
138-
env.insert("LC_TELEPHONE", sysenv.value("LC_TELEPHONE"));
139-
env.insert("LC_MEASUREMENT", sysenv.value("LC_MEASUREMENT"));
140-
env.insert("LC_IDENTIFICATION", sysenv.value("LC_IDENTIFICATION"));
127+
128+
insertEnvironmentList({"LANG", "LANGUAGE",
129+
"LC_CTYPE", "LC_NUMERIC", "LC_TIME", "LC_COLLATE", "LC_MONETARY", "LC_MESSAGES",
130+
"LC_PAPER", "LC_NAME", "LC_ADDRESS", "LC_TELEPHONE", "LC_MEASUREMENT", "LC_IDENTIFICATION"
131+
}, sysenv, env);
132+
141133
env.insert("PATH", mainConfig.Users.DefaultPath.get());
142134
env.insert("DISPLAY", m_display->name());
143135
env.insert("XAUTHORITY", m_authPath);
@@ -164,6 +156,12 @@ namespace SDDM {
164156
return true;
165157
}
166158

159+
void Greeter::insertEnvironmentList(QStringList names, QProcessEnvironment sourceEnv, QProcessEnvironment &targetEnv) {
160+
for (QStringList::const_iterator it = names.constBegin(); it != names.constEnd(); ++it)
161+
if (sourceEnv.contains(*it))
162+
targetEnv.insert(*it, sourceEnv.value(*it));
163+
}
164+
167165
void Greeter::stop() {
168166
// check flag
169167
if (!m_started)

src/daemon/Greeter.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ namespace SDDM {
6565

6666
Auth *m_auth { nullptr };
6767
QProcess *m_process { nullptr };
68+
69+
static void insertEnvironmentList(QStringList names, QProcessEnvironment sourceEnv, QProcessEnvironment &targetEnv);
6870
};
6971
}
7072

0 commit comments

Comments
 (0)