diff --git a/src/lxc/conf.h b/src/lxc/conf.h index 283042c78..ae29d4210 100644 --- a/src/lxc/conf.h +++ b/src/lxc/conf.h @@ -377,7 +377,7 @@ struct lxc_conf { gid_t init_gid; /* indicator if the container will be destroyed on shutdown */ - int ephemeral; + unsigned int ephemeral; /* The facility to pass to syslog. Let's users establish as what type of * program liblxc is supposed to write to the syslog. */ diff --git a/src/lxc/confile.c b/src/lxc/confile.c index dad7a73f3..eccdcb54c 100644 --- a/src/lxc/confile.c +++ b/src/lxc/confile.c @@ -2964,13 +2964,12 @@ bool network_new_hwaddrs(struct lxc_conf *conf) static int config_ephemeral(const char *key, const char *value, struct lxc_conf *lxc_conf) { - int v = atoi(value); + if (lxc_safe_uint(value, &lxc_conf->ephemeral) < 0) + return -1; - if (v != 0 && v != 1) { + if (lxc_conf->ephemeral > 1) { ERROR("Wrong value for lxc.ephemeral. Can only be set to 0 or 1"); return -1; - } else { - lxc_conf->ephemeral = v; } return 0;