Do not go past the end of the argv[] array.
authorMichael Brown <mcb30@etherboot.org>
Sun, 14 Jan 2007 02:01:26 +0000 (02:01 +0000)
committerMichael Brown <mcb30@etherboot.org>
Sun, 14 Jan 2007 02:01:26 +0000 (02:01 +0000)
This bug found by setting read and write watchpoints at NULL in bochs.

src/core/getopt.c

index 4e839ca..547aa69 100644 (file)
@@ -227,6 +227,10 @@ int getopt_long ( int argc, char * const argv[], const char *optstring,
        enum getopt_argument_requirement has_arg;
        int option;
 
+       /* Check for end of argv array */
+       if ( optind >= argc )
+               return -1;
+
        /* Check for end of options */
        if ( *(opttext++) != '-' )
                return -1;