]> git.sur5r.net Git - openocd/commitdiff
helper/options.c: fail if unexpected cmdline arguments are present
authorGirts <girtsf@users.noreply.github.com>
Sat, 5 Nov 2016 21:38:55 +0000 (14:38 -0700)
committerFreddie Chopin <freddie.chopin@gmail.com>
Sun, 23 Apr 2017 20:38:41 +0000 (21:38 +0100)
Previously openocd would silently ignore any incorrect arguments.

Change-Id: Ibb40b57b8a9e07d191215486f3b3c4920a9963c7
Signed-off-by: Girts Folkmanis <opensource@girts.me>
Reviewed-on: http://openocd.zylin.com/3879
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
src/helper/options.c

index 0016659148aa0b39e37660b9373ac8e2a5e2cc31..1cfa55376afb3a6d1cf9ad4296c958e77f499ceb 100644 (file)
@@ -291,9 +291,18 @@ int parse_cmdline_args(struct command_context *cmd_ctx, int argc, char *argv[])
                                LOG_WARNING("deprecated option: -p/--pipe. Use '-c \"gdb_port pipe; "
                                                "log_output openocd.log\"' instead.");
                                break;
+                       default:  /* '?' */
+                               /* getopt will emit an error message, all we have to do is bail. */
+                               return ERROR_FAIL;
                }
        }
 
+       if (optind < argc) {
+               /* Catch extra arguments on the command line. */
+               LOG_OUTPUT("Unexpected command line argument: %s\n", argv[optind]);
+               return ERROR_FAIL;
+       }
+
        if (help_flag) {
                LOG_OUTPUT("Open On-Chip Debugger\nLicensed under GNU GPL v2\n");
                LOG_OUTPUT("--help       | -h\tdisplay this help\n");