vsh: Extend checks for aliased commands

If a command is an alias, then it can only have .name, .flags and
.alias set and .flags should contain just VSH_CMD_FLAG_ALIAS.
Check if that's the case in self-test.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Michal Privoznik 2021-09-17 09:52:43 +02:00
parent 520e858a8d
commit a1a22b0b1c

View File

@ -290,6 +290,26 @@ vshCmddefCheckInternals(vshControl *ctl,
return -1;
}
if (cmd->handler) {
vshError(ctl, _("command '%s' has handler set"), cmd->name);
return -1;
}
if (cmd->opts) {
vshError(ctl, _("command '%s' has options set"), cmd->name);
return -1;
}
if (cmd->info) {
vshError(ctl, _("command '%s' has info set"), cmd->name);
return -1;
}
if (cmd->flags & ~VSH_CMD_FLAG_ALIAS) {
vshError(ctl, _("command '%s' has multiple flags set"), cmd->name);
return -1;
}
/* we don't need to continue as the real command will be checked separately */
return 0;
}