mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
virsh: Fix logical error in cmdSetUserSSHKeys()
In v6.10.0-rc1~104 I've added a virsh command that exposes virDomainAuthorizedSSHKeysSet() API under "set-user-sshkeys" command. The command accepts mutually exclusive "--reset" and "--remove" options (among others). While the former controls the VIR_DOMAIN_AUTHORIZED_SSH_KEYS_SET_APPEND flag, the latter controls the VIR_DOMAIN_AUTHORIZED_SSH_KEYS_SET_REMOVE flag. These flags are also mutually exclusive. But the code that sets them has a logical error which may result in both flags being set. In fact, this results in user being not able to set just the remove flag. Fixes: 87d12effbea8b414c250b6fefd93154c62a99370 Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1904674 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
cafbc6d1d2
commit
22e785b8ef
@ -14375,18 +14375,19 @@ cmdSetUserSSHKeys(vshControl *ctl, const vshCmd *cmd)
|
||||
if (vshCommandOptStringReq(ctl, cmd, "file", &from) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (!vshCommandOptBool(cmd, "reset")) {
|
||||
flags |= VIR_DOMAIN_AUTHORIZED_SSH_KEYS_SET_APPEND;
|
||||
if (vshCommandOptBool(cmd, "remove")) {
|
||||
flags |= VIR_DOMAIN_AUTHORIZED_SSH_KEYS_SET_REMOVE;
|
||||
} else {
|
||||
if (!vshCommandOptBool(cmd, "reset")) {
|
||||
flags |= VIR_DOMAIN_AUTHORIZED_SSH_KEYS_SET_APPEND;
|
||||
|
||||
if (!from) {
|
||||
vshError(ctl, _("Option --file is required"));
|
||||
goto cleanup;
|
||||
if (!from) {
|
||||
vshError(ctl, _("Option --file is required"));
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (vshCommandOptBool(cmd, "remove"))
|
||||
flags |= VIR_DOMAIN_AUTHORIZED_SSH_KEYS_SET_REMOVE;
|
||||
|
||||
if (from) {
|
||||
if (virFileReadAll(from, VSH_MAX_XML_FILE, &buffer) < 0) {
|
||||
vshSaveLibvirtError();
|
||||
|
Loading…
x
Reference in New Issue
Block a user