From: Tycho Andersen Date: Fri, 26 Jan 2018 17:43:12 +0000 (+0000) Subject: better check for lock dir X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=02b05b04bbd65d31086ad530bb5cd7c2e98751fa;p=thirdparty%2Flxc.git 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 --- diff --git a/src/lxc/utils.c b/src/lxc/utils.c index dbe2e810b..97892ad1e 100644 --- a/src/lxc/utils.c +++ b/src/lxc/utils.c @@ -214,8 +214,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; }