diff options
author | Giuseppe Scrivano <gscrivan@redhat.com> | 2019-03-08 16:36:49 +0100 |
---|---|---|
committer | Giuseppe Scrivano <gscrivan@redhat.com> | 2019-03-08 19:42:20 +0100 |
commit | cc411dd98fed42a19d2d4f8ec1922ba62da49957 (patch) | |
tree | 94e0545a80269d4dd22de0fe87e100c2d3e24fe9 /pkg/rootless | |
parent | 8a21e231e63e557448f3471ff57a27fac682d9cc (diff) | |
download | podman-cc411dd98fed42a19d2d4f8ec1922ba62da49957.tar.gz podman-cc411dd98fed42a19d2d4f8ec1922ba62da49957.tar.bz2 podman-cc411dd98fed42a19d2d4f8ec1922ba62da49957.zip |
rootless: propagate errors from info
we use "podman info" to reconfigure the runtime after a reboot, but we
don't propagate the error message back if something goes wrong.
Closes: https://github.com/containers/libpod/issues/2584
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Diffstat (limited to 'pkg/rootless')
-rw-r--r-- | pkg/rootless/rootless_linux.c | 2 | ||||
-rw-r--r-- | pkg/rootless/rootless_linux.go | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/pkg/rootless/rootless_linux.c b/pkg/rootless/rootless_linux.c index 41acd3475..ff39e9e77 100644 --- a/pkg/rootless/rootless_linux.c +++ b/pkg/rootless/rootless_linux.c @@ -277,6 +277,8 @@ reexec_in_user_namespace (int ready) _exit (EXIT_FAILURE); } close (ready); + if (b != '1') + _exit (EXIT_FAILURE); if (syscall_setresgid (0, 0, 0) < 0) { diff --git a/pkg/rootless/rootless_linux.go b/pkg/rootless/rootless_linux.go index 55fba900e..933cfa2c2 100644 --- a/pkg/rootless/rootless_linux.go +++ b/pkg/rootless/rootless_linux.go @@ -229,6 +229,7 @@ func BecomeRootInUserNS() (bool, int, error) { } defer r.Close() defer w.Close() + defer w.Write([]byte("0")) pidC := C.reexec_in_user_namespace(C.int(r.Fd())) pid := int(pidC) |