[libvirt PATCH 2/2] ch: virCHProcessSetupIOThreads: use correct type for return value

Ján Tomko jtomko at redhat.com
Wed Feb 2 16:39:22 UTC 2022


virCHMonitorGetIOThreads returns an int, not size_t.

Also return early if it's negative, because promoting it to
an unsigned type in the for loop condition could lead to
an infinte loop.

Signed-off-by: Ján Tomko <jtomko at redhat.com>
---
 src/ch/ch_process.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/ch/ch_process.c b/src/ch/ch_process.c
index 414e203154..e4313d1008 100644
--- a/src/ch/ch_process.c
+++ b/src/ch/ch_process.c
@@ -327,9 +327,11 @@ virCHProcessSetupIOThreads(virDomainObj *vm)
     virCHDomainObjPrivate *priv = vm->privateData;
     virDomainIOThreadInfo **iothreads = NULL;
     size_t i;
-    size_t  niothreads;
+    int niothreads;
+
+    if ((niothreads = virCHMonitorGetIOThreads(priv->monitor, &iothreads)) < 0)
+        return -1;
 
-    niothreads = virCHMonitorGetIOThreads(priv->monitor, &iothreads);
     for (i = 0; i < niothreads; i++) {
         VIR_DEBUG("IOThread index = %ld , tid = %d", i, iothreads[i]->iothread_id);
         if (virCHProcessSetupIOThread(vm, iothreads[i]) < 0)
-- 
2.34.1




More information about the libvir-list mailing list