From 6999dc861ad3cf77802f76cda028802355c4ee6d Mon Sep 17 00:00:00 2001
From: Michal Privoznik <mprivozn@redhat.com>
Date: Wed, 8 Jun 2022 15:01:00 +0200
Subject: [PATCH 20/22] virsh: Check whether enough arguments was passed to
 iothreadset

Virsh has iothreadset command which allows setting various
attributes of IOThreads. However, when the command is called
without any arguments (besides domain and IOThread IDs), then
@params stays NULL and is passed to virDomainSetIOThreadParams()
which produces rather user unfriendly error message:

  error: params in virDomainSetIOThreadParams must not be NULL

Introduce a check and produce better error message.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Claudio Fontana <cfontana@suse.de>
---
 tools/virsh-domain.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 6dd56168e3..0d58775289 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -7981,6 +7981,11 @@ cmdIOThreadSet(vshControl *ctl, const vshCmd *cmd)
 
 #undef VSH_IOTHREAD_SET_UINT_PARAMS
 
+    if (nparams == 0) {
+        vshError(ctl, _("Not enough arguments passed, nothing to set"));
+        goto cleanup;
+    }
+
     if (virDomainSetIOThreadParams(dom, id, params, nparams, flags) < 0)
         goto cleanup;
 
-- 
2.33.0

