summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-11-09 16:33:15 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2009-11-09 16:33:15 +0100
commitfc8e94118cdf9a0b421a7face867c39d84aa3d94 (patch)
tree12040237f7d41e687611bb8eb4dce3749d3c7388 /lib
parent2a8938c04185cd321a4a9b98baca977506d39ced (diff)
downloadabrt-fc8e94118cdf9a0b421a7face867c39d84aa3d94.tar.gz
abrt-fc8e94118cdf9a0b421a7face867c39d84aa3d94.tar.xz
abrt-fc8e94118cdf9a0b421a7face867c39d84aa3d94.zip
prevent gdb from i18izing its output
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/Plugins/CCpp.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Plugins/CCpp.cpp b/lib/Plugins/CCpp.cpp
index 1ab0e641..5f87235c 100644
--- a/lib/Plugins/CCpp.cpp
+++ b/lib/Plugins/CCpp.cpp
@@ -127,6 +127,18 @@ static pid_t ExecVP(char** pArgs, uid_t uid, std::string& pOutput)
setreuid(uid, uid);
setsid();
+ /* Nuke everything which may make setlocale() switch to non-POSIX locale:
+ * we need to avoid having gdb output in some obscure language.
+ */
+ unsetenv("LANG");
+ unsetenv("LC_ALL");
+ unsetenv("LC_COLLATE");
+ unsetenv("LC_CTYPE");
+ unsetenv("LC_MESSAGES");
+ unsetenv("LC_MONETARY");
+ unsetenv("LC_NUMERIC");
+ unsetenv("LC_TIME");
+
execvp(pArgs[0], pArgs);
/* VERB1 since sometimes we expect errors here */
VERB1 perror_msg("Can't execute '%s'", pArgs[0]);