From 2b2655a8c5038d4519b82816f186edccb6b67e06 Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Tue, 1 May 2018 17:27:51 +0200 Subject: [PATCH] coverity: #1425744 Dereference after null check userns_exec_{1,full} are called from functions that might not have a conf. Signed-off-by: Christian Brauner --- src/lxc/conf.c | 6 ++++++ src/lxc/lxccontainer.c | 1 + 2 files changed, 7 insertions(+) diff --git a/src/lxc/conf.c b/src/lxc/conf.c index 253331160..e854b8b03 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -4117,6 +4117,9 @@ int userns_exec_1(struct lxc_conf *conf, int (*fn)(void *), void *data, int ret = -1, status = -1; char c = '1'; + if (!conf) + return -EINVAL; + idmap = get_minimal_idmap(conf); if (!idmap) return -1; @@ -4200,6 +4203,9 @@ int userns_exec_full(struct lxc_conf *conf, int (*fn)(void *), void *data, struct id_map *container_root_uid = NULL, *container_root_gid = NULL, *host_uid_map = NULL, *host_gid_map = NULL; + if (!conf) + return -EINVAL; + ret = pipe(p); if (ret < 0) { SYSERROR("opening pipe"); diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c index 30efeaff8..b396a6d5a 100644 --- a/src/lxc/lxccontainer.c +++ b/src/lxc/lxccontainer.c @@ -2955,6 +2955,7 @@ static bool do_lxcapi_destroy(struct lxc_container *c) { if (!c || !lxcapi_is_defined(c)) return false; + if (has_snapshots(c)) { ERROR("Container %s has snapshots; not removing", c->name); return false;