instance: Warn about unexpected number of parameters
[oweals/procd.git] / service / instance.c
index d15acd4b08aa7661b0eeb98224e47ce5104a81b2..3098ff3bb50c478811e480ba774c16e0802dd6b3 100644 (file)
@@ -337,8 +337,12 @@ instance_run(struct service_instance *in, int _stdout, int _stderr)
                ULOG_WARN("Seccomp support for %s::%s not available\n", in->srv->name, in->name);
 #endif
 
-       if (in->has_jail)
+       if (in->has_jail) {
                argc = jail_run(in, argv);
+               if (argc != in->jail.argc)
+                       ULOG_WARN("expected %i jail params, used %i for %s::%s\n",
+                               in->jail.argc, argc, in->srv->name, in->name);
+       }
 
        blobmsg_for_each_attr(cur, in->command, rem)
                argv[argc++] = blobmsg_data(cur);
@@ -829,6 +833,9 @@ instance_jail_parse(struct service_instance *in, struct blob_attr *attr)
        if (in->seccomp)
                jail->argc += 2;
 
+       if (in->no_new_privs)
+               jail->argc++;
+
        return 1;
 }
 
@@ -1157,6 +1164,12 @@ void instance_dump(struct blob_buf *b, struct service_instance *in, int verbose)
        if (in->pidfile)
                blobmsg_add_string(b, "pidfile", in->pidfile);
 
+       if (in->user)
+               blobmsg_add_string(b, "user", in->user);
+
+       if (in->group)
+               blobmsg_add_string(b, "group", in->group);
+
        if (in->has_jail) {
                void *r = blobmsg_open_table(b, "jail");
                if (in->jail.name)