From abb11fca1bcd7932d14c911d63fb7c6c347dcbcd Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Tue, 8 Mar 2011 14:07:33 +0100 Subject: make fork_execv_on_steroids capable of setting env vars too Before, it could only unset them. Signed-off-by: Denys Vlasenko --- src/plugins/abrt-action-analyze-c.c | 2 +- src/plugins/abrt-action-generate-backtrace.c | 11 +++++------ src/plugins/abrt-action-mailx.c | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/abrt-action-analyze-c.c b/src/plugins/abrt-action-analyze-c.c index 5def9aa1..635a3316 100644 --- a/src/plugins/abrt-action-analyze-c.c +++ b/src/plugins/abrt-action-analyze-c.c @@ -63,7 +63,7 @@ static char *run_unstrip_n(const char *dump_dir_name, unsigned timeout_sec) args[1] = xasprintf("--core=%s/"FILENAME_COREDUMP, dump_dir_name); args[2] = (char*)"-n"; args[3] = NULL; - pid_t child = fork_execv_on_steroids(flags, args, pipeout, /*unsetenv_vec:*/ NULL, /*dir:*/ NULL, uid); + pid_t child = fork_execv_on_steroids(flags, args, pipeout, /*env_vec:*/ NULL, /*dir:*/ NULL, uid); free(args[1]); /* Bugs in unstrip or corrupted coredumps can cause it to enter infinite loop. diff --git a/src/plugins/abrt-action-generate-backtrace.c b/src/plugins/abrt-action-generate-backtrace.c index a8c18e36..7defc9c4 100644 --- a/src/plugins/abrt-action-generate-backtrace.c +++ b/src/plugins/abrt-action-generate-backtrace.c @@ -76,6 +76,11 @@ static char* exec_vp(char **args, uid_t uid, int redirect_stderr, int *status) "LC_MONETARY", "LC_NUMERIC", "LC_TIME", + /* Workaround for + * http://sourceware.org/bugzilla/show_bug.cgi?id=9622 + * (gdb emitting ESC sequences even with -batch) + */ + "TERM", NULL }; @@ -137,12 +142,6 @@ static char *get_backtrace(struct dump_dir *dd) char *executable = dd_load_text(dd, FILENAME_EXECUTABLE); dd_close(dd); - // Workaround for - // http://sourceware.org/bugzilla/show_bug.cgi?id=9622 - unsetenv("TERM"); - // This is not necessary - //putenv((char*)"TERM=dumb"); - char *args[21]; args[0] = (char*)"gdb"; args[1] = (char*)"-batch"; diff --git a/src/plugins/abrt-action-mailx.c b/src/plugins/abrt-action-mailx.c index 3debf449..06f81780 100644 --- a/src/plugins/abrt-action-mailx.c +++ b/src/plugins/abrt-action-mailx.c @@ -32,7 +32,7 @@ static void exec_and_feed_input(uid_t uid, const char* text, char **args) EXECFLG_INPUT | EXECFLG_QUIET | EXECFLG_SETGUID, args, pipein, - /*unsetenv_vec:*/ NULL, + /*env_vec:*/ NULL, /*dir:*/ NULL, uid); -- cgit