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:
parent
1890c53892
commit
04193fb2ae
|
@ -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 */
|
||||
if (old)
|
||||
(void) setenv("PATH", old, 1);
|
||||
else
|
||||
(void) unsetenv("PATH");
|
||||
}
|
||||
|
||||
static void test_error_catching(void) {
|
||||
|
|
Loading…
Reference in a new issue