From b9dcaede6574b80fa2bd6645ff74a82c892792a4 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Tue, 8 Dec 2020 13:42:40 +0100 Subject: [PATCH] virsh: cmdSetUserSSHKeys: Error early if the file doesn't contain any keys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When removing SSH keys via set-user-sshkeys virsh command, then files to remove are read from passed file. But when experimenting, I've passed /dev/null as the file which resulted in API checks which caught that @keys argument of virDomainAuthorizedSSHKeysSet() can't be NULL. This is because if the file is empty then its content is an empty string and thus the buffer the file was read in to is not NULL. Long story short, error is reported correctly, but it's not necessary to go through public API to catch it. Signed-off-by: Michal Privoznik Reviewed-by: Ján Tomko --- tools/virsh-domain.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 6266c7acd2..befa8d2448 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -14398,6 +14398,10 @@ cmdSetUserSSHKeys(vshControl *ctl, const vshCmd *cmd) goto cleanup; nkeys = virStringListLength((const char **) keys); + if (nkeys == 0) { + vshError(ctl, _("File %s contains no keys"), from); + goto cleanup; + } } if (virDomainAuthorizedSSHKeysSet(dom, user,