test-exec-util: do not call setenv with NULL arg

The comment explains that $PATH might not be set in certain circumstances and
takes steps to handle this case. If we do that, let's assume that $PATH indeed
might be unset and not call setenv("PATH", NULL, 1). It is not clear from the
man page if that is allowed.

CID #1400497.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2019-04-12 09:00:37 +02:00
parent 1890c53892
commit 04193fb2ae
1 changed files with 5 additions and 2 deletions

View File

@ -324,7 +324,7 @@ static void test_environment_gathering(void) {
assert_se(chmod(name3, 0755) == 0);
/* When booting in containers or without initramfs there might not be
* any PATH in the environ and if there is no PATH /bin/sh built-in
* any PATH in the environment and if there is no PATH /bin/sh built-in
* PATH may leak and override systemd's DEFAULT_PATH which is not
* good. Force our own PATH in environment, to prevent expansion of sh
* built-in $PATH */
@ -361,7 +361,10 @@ static void test_environment_gathering(void) {
assert_se(streq(strv_env_get(env, "PATH"), DEFAULT_PATH ":/no/such/file"));
/* reset environ PATH */
(void) setenv("PATH", old, 1);
if (old)
(void) setenv("PATH", old, 1);
else
(void) unsetenv("PATH");
}
static void test_error_catching(void) {