]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
lxc-user-nic: validate request 2924/head
authorChristian Brauner <christian.brauner@ubuntu.com>
Fri, 5 Apr 2019 12:11:43 +0000 (14:11 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Fri, 5 Apr 2019 12:16:09 +0000 (14:16 +0200)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Cc: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
src/lxc/cmd/lxc_user_nic.c

index 61a0aec7cca0e1d10ac45a3826fa545c620bf100..284b22ed22365a2299aec80eb89ce7cc7bd1ebad 100644 (file)
@@ -1090,6 +1090,18 @@ do_partial_cleanup:
        return bret;
 }
 
+static inline int validate_args(const struct user_nic_args *args, int argc)
+{
+       int request = -EINVAL;
+
+       if (!strcmp(args->cmd, "create"))
+               request = LXC_USERNIC_CREATE;
+       else if (!strcmp(args->cmd, "delete"))
+               request = LXC_USERNIC_DELETE;
+
+       return request;
+}
+
 int main(int argc, char *argv[])
 {
        __do_free char *me = NULL, *newname = NULL, *nicname = NULL;
@@ -1113,11 +1125,8 @@ int main(int argc, char *argv[])
        if (argc == 8)
                args.veth_name = argv[7];
 
-       if (!strcmp(args.cmd, "create"))
-               request = LXC_USERNIC_CREATE;
-       else if (!strcmp(args.cmd, "delete"))
-               request = LXC_USERNIC_DELETE;
-       else
+       request = validate_args(&args, argc);
+       if (request < 0)
                usage(true);
 
        /* Set a sane env, because we are setuid-root. */