summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivan@redhat.com>2019-03-08 16:36:49 +0100
committerGiuseppe Scrivano <gscrivan@redhat.com>2019-03-08 19:42:20 +0100
commitcc411dd98fed42a19d2d4f8ec1922ba62da49957 (patch)
tree94e0545a80269d4dd22de0fe87e100c2d3e24fe9 /pkg
parent8a21e231e63e557448f3471ff57a27fac682d9cc (diff)
downloadpodman-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')
-rw-r--r--pkg/rootless/rootless_linux.c2
-rw-r--r--pkg/rootless/rootless_linux.go1
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)