diff options
author | Ryan Libby <rlibby@FreeBSD.org> | 2021-02-24 23:56:16 +0000 |
---|---|---|
committer | Ryan Libby <rlibby@FreeBSD.org> | 2021-02-24 23:56:16 +0000 |
commit | d85c9cef1380f4f135aee95ad8c1f4d3eca74c5b (patch) | |
tree | 081373e690c86570a01701c2ce1d3770d0d93754 | |
parent | 14b5a3c7d5c034c2a5a487b5e2d0de79c2801a65 (diff) | |
download | src-d85c9cef1380f4f135aee95ad8c1f4d3eca74c5b.tar.gz src-d85c9cef1380f4f135aee95ad8c1f4d3eca74c5b.zip |
ddb: reliably fail with ambiguous commands
db_cmd_match had an even/odd bug, where if a third command was partially
matched (or any odd number greater than one) the search result would be
set back from CMD_AMBIGUOUS to CMD_FOUND, causing the last command in
the list to be executed instead of failing the match.
Reported by: mlaier
Reviewed by: markj, mlaier, vangyzen
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D28659
-rw-r--r-- | sys/ddb/db_command.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/ddb/db_command.c b/sys/ddb/db_command.c index fedec1dd33a4..e1f822ef44d8 100644 --- a/sys/ddb/db_command.c +++ b/sys/ddb/db_command.c @@ -293,7 +293,7 @@ db_cmd_match(char *name, struct command *cmd, struct command **cmdp, *resultp = CMD_AMBIGUOUS; /* but keep looking for a full match - this lets us match single letters */ - } else { + } else if (*resultp == CMD_NONE) { *cmdp = cmd; *resultp = CMD_FOUND; } |