char *choose_init(const char *rootfs)
{
char *retv = NULL;
+ const char *empty = "",
+ *tmp;
int ret, env_set = 0;
struct stat mystat;
return NULL;
if (rootfs)
- ret = snprintf(retv, PATH_MAX, "%s/%s/init.lxc", rootfs, SBINDIR);
+ tmp = rootfs;
else
- ret = snprintf(retv, PATH_MAX, SBINDIR "/init.lxc");
+ tmp = empty;
+
+ ret = snprintf(retv, PATH_MAX, "%s/%s/%s", tmp, SBINDIR, "/init.lxc");
if (ret < 0 || ret >= PATH_MAX) {
ERROR("pathname too long");
goto out1;
if (ret == 0)
return retv;
- if (rootfs)
- ret = snprintf(retv, PATH_MAX, "%s/%s/lxc/lxc-init", rootfs, LXCINITDIR);
- else
- ret = snprintf(retv, PATH_MAX, LXCINITDIR "/lxc/lxc-init");
+ ret = snprintf(retv, PATH_MAX, "%s/%s/%s", tmp, LXCINITDIR, "/lxc/lxc-init");
if (ret < 0 || ret >= PATH_MAX) {
ERROR("pathname too long");
goto out1;
if (ret == 0)
return retv;
- if (rootfs)
- ret = snprintf(retv, PATH_MAX, "%s/usr/lib/lxc/lxc-init", rootfs);
- else
- ret = snprintf(retv, PATH_MAX, "/usr/lib/lxc/lxc-init");
+ ret = snprintf(retv, PATH_MAX, "%s/usr/lib/lxc/lxc-init", tmp);
if (ret < 0 || ret >= PATH_MAX) {
ERROR("pathname too long");
goto out1;
if (ret == 0)
return retv;
- if (rootfs)
- ret = snprintf(retv, PATH_MAX, "%s/sbin/lxc-init", rootfs);
- else
- ret = snprintf(retv, PATH_MAX, "/sbin/lxc-init");
+ ret = snprintf(retv, PATH_MAX, "%s/sbin/lxc-init", tmp);
if (ret < 0 || ret >= PATH_MAX) {
ERROR("pathname too long");
goto out1;