From: Theodore Ts'o Date: Tue, 14 Feb 2012 22:01:48 +0000 (-0500) Subject: debugfs: use ss_safe_getenv() instead of getenv() X-Git-Tag: v1.42.1~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a1da3c5ae5d042c272fbcf5ea222ca561f566a5;p=thirdparty%2Fe2fsprogs.git debugfs: use ss_safe_getenv() instead of getenv() In the case where debugfs (or rdebugfs) is installed setgid disk, or some such, we need to disable the use of environment variables for the obvious reasons. Signed-off-by: "Theodore Ts'o" --- diff --git a/debugfs/util.c b/debugfs/util.c index 7cbf34df0..f43b4704a 100644 --- a/debugfs/util.c +++ b/debugfs/util.c @@ -26,6 +26,7 @@ extern char *optarg; extern int optreset; /* defined by BSD, but not others */ #endif +#include "ss/ss.h" #include "debugfs.h" /* @@ -79,14 +80,14 @@ static const char *find_pager(char *buf) FILE *open_pager(void) { FILE *outfile = 0; - const char *pager = getenv("DEBUGFS_PAGER"); + const char *pager = ss_safe_getenv("DEBUGFS_PAGER"); char buf[80]; signal(SIGPIPE, SIG_IGN); if (!isatty(1)) return stdout; if (!pager) - pager = getenv("PAGER"); + pager = ss_safe_getenv("PAGER"); if (!pager) pager = find_pager(buf); if (!pager || @@ -197,7 +198,7 @@ char *time_to_string(__u32 cl) if (do_gmt == -1) { /* The diet libc doesn't respect the TZ environemnt variable */ - tz = getenv("TZ"); + tz = ss_safe_getenv("TZ"); if (!tz) tz = ""; do_gmt = !strcmp(tz, "GMT"); diff --git a/lib/ss/ss.h b/lib/ss/ss.h index 6cc050bda..7333ffc90 100644 --- a/lib/ss/ss.h +++ b/lib/ss/ss.h @@ -90,6 +90,7 @@ void ss_unimplemented(int argc, const char * const *argv, void ss_set_prompt(int sci_idx, char *new_prompt); char *ss_get_prompt(int sci_idx); void ss_get_readline(int sci_idx); +char *ss_safe_getenv(const char *arg); extern ss_request_table ss_std_requests; #endif /* _ss_h */