← Commit list

86cf0364b

Denys Vlasenko
Denys Vlasenko
2011-03-08
FAILED Duration: 334s

Subject

printenv: fix environ == NULL segfault

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

coreutils/printenv.c+8 -3
@@ -19,9 +19,14 @@ int printenv_main(int argc UNUSED_PARAM, char **argv)
/* no variables specified, show whole env */
if (!argv[1]) {
- int e = 0;
- while (environ[e])
- puts(environ[e++]);
+ char **e = environ;
+
+ /* environ can be NULL! (for example, after clearenv())
+ * Check for that:
+ */
+ if (e)
+ while (*e)
+ puts(*e++);
} else {
/* search for specified variables and print them out if found */
char *arg, *env;
coreutils/test.c+1 -1
@@ -45,7 +45,7 @@
/* This is a NOFORK applet. Be very careful! */
/* test_main() is called from shells, and we need to be extra careful here.
- * This is true regardless of PREFER_APPLETS and STANDALONE_SHELL
+ * This is true regardless of PREFER_APPLETS and SH_STANDALONE
* state. */
/* test(1) accepts the following grammar: