diff options
author | Ryan Libby <rlibby@FreeBSD.org> | 2021-02-24 23:56:16 +0000 |
---|---|---|
committer | Ryan Libby <rlibby@FreeBSD.org> | 2021-07-02 21:13:24 +0000 |
commit | 4544f2ea7dd98ad1f216b212a304817ee3bba1db (patch) | |
tree | 71477a245c5895a7bec7b697ab2c4f0fa877d402 | |
parent | 65d3d849653629885bd1e5de13c99f22ca03b68e (diff) | |
download | src-4544f2ea7dd98ad1f216b212a304817ee3bba1db.tar.gz src-4544f2ea7dd98ad1f216b212a304817ee3bba1db.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
(cherry picked from commit d85c9cef1380f4f135aee95ad8c1f4d3eca74c5b)
-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 21ff75f78e6a..bfd6c700dc22 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; } |