From b90d58db07459a353d20b052bd1e4732fec03aa5 Mon Sep 17 00:00:00 2001
From: Girts <girtsf@users.noreply.github.com>
Date: Sat, 5 Nov 2016 14:38:55 -0700
Subject: [PATCH] helper/options.c: fail if unexpected cmdline arguments are
 present

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 | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/helper/options.c b/src/helper/options.c
index 001665914..1cfa55376 100644
--- a/src/helper/options.c
+++ b/src/helper/options.c
@@ -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");
-- 
GitLab