From: Petr Štetiar Date: Fri, 17 Jan 2020 15:21:51 +0000 (+0100) Subject: instance: provide error feedback if ujail binary is missing X-Git-Url: https://git.librecmc.org/?p=oweals%2Fprocd.git;a=commitdiff_plain;h=b44417c20c7fca5a7f7c581c04ac67bf5316e56e instance: provide error feedback if ujail binary is missing Otherwise it's quite hard to track such issues. While at it, be DRY and use UJAIL_BIN_PATH constant for ujail binary. Signed-off-by: Petr Štetiar --- diff --git a/service/instance.c b/service/instance.c index 3b4e93a..658c086 100644 --- a/service/instance.c +++ b/service/instance.c @@ -36,6 +36,7 @@ #include "service.h" #include "instance.h" +#define UJAIL_BIN_PATH "/sbin/ujail" enum { INSTANCE_ATTR_COMMAND, @@ -207,7 +208,7 @@ jail_run(struct service_instance *in, char **argv) struct jail *jail = &in->jail; int argc = 0; - argv[argc++] = "/sbin/ujail"; + argv[argc++] = UJAIL_BIN_PATH; if (jail->name) { argv[argc++] = "-n"; @@ -800,9 +801,13 @@ instance_jail_parse(struct service_instance *in, struct blob_attr *attr) struct blob_attr *tb[__JAIL_ATTR_MAX]; struct jail *jail = &in->jail; struct stat s; + int r; - if (stat("/sbin/ujail", &s)) + r = stat(UJAIL_BIN_PATH, &s); + if (r < 0) { + ERROR("unable to find %s: %m (%d)\n", UJAIL_BIN_PATH, r); return 0; + } blobmsg_parse(jail_attr, __JAIL_ATTR_MAX, tb, blobmsg_data(attr), blobmsg_data_len(attr));