mkimage: fix option parsing segfault
authorCarlos López <carlos.lopezr4096@gmail.com>
Thu, 24 Apr 2025 15:08:19 +0000 (17:08 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 28 Apr 2025 19:25:59 +0000 (13:25 -0600)
getopt_long() expects a NULL-terminated list of structures. The current
list in mkimage does not have a zero-filled structure at the end, which
can cause getopt_long() to walk past the end of the array when passing
an unknown option, causing a segmentation fault.

As a reproducer, the following command causes a segmentation fault
(tested in Debian 12):

    mkimage --foobar

Signed-off-by: Carlos López <carlos.lopezr4096@gmail.com>
tools/mkimage.c

index ac62ebb..2954626 100644 (file)
@@ -196,6 +196,7 @@ static const struct option longopts[] = {
        { "verbose", no_argument, NULL, 'v' },
        { "version", no_argument, NULL, 'V' },
        { "xip", no_argument, NULL, 'x' },
+       { /* sentinel */ },
 };
 
 static void process_args(int argc, char **argv)