From: Christian Brauner Date: Fri, 5 Apr 2019 12:11:43 +0000 (+0200) Subject: lxc-user-nic: validate request X-Git-Tag: lxc-3.2.0~107^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff63fd780d0e080ee38bc2b9b7e73789e9e24ad4;p=thirdparty%2Flxc.git lxc-user-nic: validate request Signed-off-by: Christian Brauner Cc: Akihiro Suda --- diff --git a/src/lxc/cmd/lxc_user_nic.c b/src/lxc/cmd/lxc_user_nic.c index 61a0aec7c..284b22ed2 100644 --- a/src/lxc/cmd/lxc_user_nic.c +++ b/src/lxc/cmd/lxc_user_nic.c @@ -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. */