# HG changeset patch # User Matt Johnston # Date 1450189422 -28800 # Node ID b73c078e11e99ae4cbd249a6329a7b9a56b1a4bf # Parent 980b7ea2c5efce8440fa6b90b9d47a9c99ae17e1 Don't allow spaces and don't get confused by -o usesyslogd=yes (option name has another option name as a prefix) diff -r 980b7ea2c5ef -r b73c078e11e9 cli-runopts.c --- a/cli-runopts.c Tue Dec 15 22:19:41 2015 +0800 +++ b/cli-runopts.c Tue Dec 15 22:23:42 2015 +0800 @@ -824,29 +824,22 @@ #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) {