From 9650c735c7dd56bb5200b20f85e5b6b0482edb7b Mon Sep 17 00:00:00 2001 From: Tycho Andersen Date: Fri, 26 Jan 2018 17:43:12 +0000 Subject: [PATCH] better check for lock dir Consider the case where we're running in a user namespace but in the host's mount ns with the host's filesystem (something like lxc-usernsexec ... lxc-execute ...), in this case, we'll be euid 0, but we can't actually write to /run. Let's improve this locking check to make sure we can actually write to /run before we decide to actually use it as our locking dir. Signed-off-by: Tycho Andersen --- src/lxc/utils.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lxc/utils.c b/src/lxc/utils.c index 0b8841630..c7812fdac 100644 --- a/src/lxc/utils.c +++ b/src/lxc/utils.c @@ -245,8 +245,13 @@ char *get_rundir() { char *rundir; const char *homedir; + struct stat sb; + + if (stat(RUNTIME_PATH, &sb) < 0) { + return NULL; + } - if (geteuid() == 0) { + if (geteuid() == sb.st_uid || getegid() == sb.st_gid) { rundir = strdup(RUNTIME_PATH); return rundir; } -- 2.47.2