From 84ffffeb0a2ff69e36bd972d57699f9e3bb29a48 Mon Sep 17 00:00:00 2001 From: Jakub Kicinski Date: Mon, 31 Jul 2023 09:19:20 -0700 Subject: [PATCH] ip: error out if iplink does not consume all options dummy does not define .parse_opt, which make ip ignore all trailing arguments, for example: # ip link add type dummy a b c d e f name cheese will work just fine (and won't call the device "cheese"). Error out in this case with a clear error message: # ip link add type dummy a b c d e f name cheese Garbage instead of arguments "a ...". Try "ip link help". Signed-off-by: Jakub Kicinski Signed-off-by: Stephen Hemminger --- ip/iplink.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ip/iplink.c b/ip/iplink.c index 6c5d13d53..9a548dd35 100644 --- a/ip/iplink.c +++ b/ip/iplink.c @@ -1112,13 +1112,12 @@ static int iplink_modify(int cmd, unsigned int flags, int argc, char **argv) argc -= ret; argv += ret; - if (lu && argc) { + if (lu && lu->parse_opt && argc) { struct rtattr *data; data = addattr_nest(&req.n, sizeof(req), iflatype); - if (lu->parse_opt && - lu->parse_opt(lu, argc, argv, &req.n)) + if (lu->parse_opt(lu, argc, argv, &req.n)) return -1; addattr_nest_end(&req.n, data); -- 2.47.2