From 251ee95294bd1554591c2a3b3d1d6428315dad52 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Sun, 16 Aug 2026 18:36:34 +0000 Subject: tools: Fix irm CLI arg parsing Fixes "irm name list" matching "list" instead of "name" and improves guards against missing (last) arguments. Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- src/tools/irm/irm_bind_program.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'src/tools/irm/irm_bind_program.c') diff --git a/src/tools/irm/irm_bind_program.c b/src/tools/irm/irm_bind_program.c index 14d09db7..592c2ec3 100644 --- a/src/tools/irm/irm_bind_program.c +++ b/src/tools/irm/irm_bind_program.c @@ -67,18 +67,23 @@ int do_bind_program(int argc, int ret = 0; char * temp = NULL; + if (argc < 1) { + usage(); + return -1; + } + + temp = realpath(*argv, NULL); + if (temp != NULL) + *argv = temp; + prog = *argv; + ++argv; + --argc; + while (argc > 0) { if (matches(*argv, "name") == 0) { name = *(argv + 1); ++argv; --argc; - } else if (matches(*argv, "program") == 0) { - ++argv; - temp = realpath(*argv, NULL); - if (temp != NULL) - *argv = temp; - prog = *argv; - --argc; } else if (strcmp(*argv, "auto") == 0) { flags |= BIND_AUTO; } else if (strcmp(*argv, "--") == 0) { -- cgit v1.2.3