From 811ce0e13b6d319df54e86b8c698e45cfbd8b940 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Wed, 15 May 2024 08:42:57 +0200 Subject: [PATCH] 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 --- tools/vsh.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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; -- 2.39.5