From: Peter Krempa Date: Wed, 15 May 2024 06:42:57 +0000 (+0200) Subject: vsh: Fix '--help' option for virsh/virt-admin X-Git-Tag: v10.4.0-rc1~58 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=811ce0e13b6d319df54e86b8c698e45cfbd8b940;p=thirdparty%2Flibvirt.git vsh: Fix '--help' option for virsh/virt-admin The refactor of the libvirt tools command parser introduced a bug where the '--help' option would cause an error: $ virsh list --help error: command 'list' doesn't support option --help rather than printing the help for the command as the help option is supposed to be handled separately from the real options. Re-introduce the separate handling to the new parser code. Fixes: 5540c3d2415c194b206f8946cf74b13648163332 Resolves: https://issues.redhat.com/browse/RHEL-36565 Reported-by: Lili Zhu Signed-off-by: Peter Krempa Reviewed-by: Martin Kletzander --- diff --git a/tools/vsh.c b/tools/vsh.c index e74045c24e..61a3066f49 100644 --- a/tools/vsh.c +++ b/tools/vsh.c @@ -1655,7 +1655,10 @@ vshCommandParse(vshControl *ctl, /* lookup the option. Note that vshCmdGetOption also resolves aliases * and thus the value possibly contained in the alias */ - if (!(opt = vshCmdGetOption(ctl, cmd, optionname, &optionvalue, report))) { + if (STREQ(optionname, "help")) { + cmd->helpOptionSeen = true; + g_clear_pointer(&optionvalue, g_free); + } else if (!(opt = vshCmdGetOption(ctl, cmd, optionname, &optionvalue, report))) { if (STRNEQ(cmd->def->name, "help")) goto out;