Commit c9dcc3d
libcontainer/configs/config: Clear hook environ variables on empty Env
The runtime spec has [1]:
* env (array of strings, OPTIONAL) with the same semantics as IEEE
Std 1003.1-2008's environ.
And running execle or similar with NULL env results in an empty
environent:
$ cat test.c
#include <unistd.h>
int main()
{
return execle("/usr/bin/env", "env", NULL, NULL);
}
$ cc -o test test.c
$ ./test
...no output...
Go's Cmd.Env, on the other hand, has [2]:
If Env is nil, the new process uses the current process's
environment.
This commit works around that by setting Env to an empty slice in
those cases to avoid leaking the runtime environment into the hooks.
[1]: https://github.com/opencontainers/runtime-spec/blob/v1.0.1/config.md#posix-platform-hooks
[2]: https://golang.org/pkg/os/exec/#Cmd
Signed-off-by: W. Trevor King <[email protected]>
(cherry picked from commit c11bd33)
Signed-off-by: lfbzhm <[email protected]>1 parent fd5675e commit c9dcc3d
1 file changed
+3
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
480 | 480 | | |
481 | 481 | | |
482 | 482 | | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
483 | 486 | | |
484 | 487 | | |
485 | 488 | | |
| |||
0 commit comments