From da108a932769806aca0e6e50831a6213becf42c8 Mon Sep 17 00:00:00 2001
From: Matt Johnston <matt@ucc.asn.au>
Date: Tue, 15 Dec 2015 22:23:42 +0800
Subject: [PATCH] Don't allow spaces and don't get confused by -o
 usesyslogd=yes (option name has another option name as a prefix)

---
 cli-runopts.c | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/cli-runopts.c b/cli-runopts.c
index d70a4e19..60b4aa17 100644
--- a/cli-runopts.c
+++ b/cli-runopts.c
@@ -824,29 +824,22 @@ badport:
 #endif
 
 static int match_extendedopt(const char** strptr, const char *optname) {
-	int seen_eq = 0;
 	int optlen = strlen(optname);
 	const char *str = *strptr;
 
-	while (isspace(*str)) {
-		++str;
-	}
-
 	if (strncasecmp(str, optname, optlen) != 0) {
 		return DROPBEAR_FAILURE;
 	}
 
 	str += optlen;
 
-	while (isspace(*str) || (!seen_eq && *str == '=')) {
-		if (*str == '=') {
-			seen_eq = 1;
-		}
-		++str;
+	if (*str == '=') {
+		*strptr = str+1;
+		return DROPBEAR_SUCCESS;
+	} else {
+		return DROPBEAR_FAILURE;
 	}
 
-	*strptr = str;
-	return DROPBEAR_SUCCESS;
 }
 
 static int parse_flag_value(const char *value) {
-- 
GitLab