]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
remote_daemon_dispatch.c: typecast ARRAY_CARDINALITY() in remoteDispatchProbeURI()
authorMichal Privoznik <mprivozn@redhat.com>
Wed, 14 Aug 2019 12:41:42 +0000 (14:41 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 16 Aug 2019 06:56:02 +0000 (08:56 +0200)
Since users can enable/disable drivers at compile time, it may
happen that @drivers array is in fact empty (in both its
occurrences within the function). This means that
ARRAY_CARDINALITY() returns 0UL which makes gcc unhappy because
of loop condition:

  i < ARRAY_CARDINALITY(drivers)

GCC complains that @i is unsigned and comparing an unsigned value
against 0 is always false. However, changing the type of @i to
ssize_t is not enough, because compiler still sees the unsigned
zero. The solution is to typecast the ARRAY_CARDINALITY().

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
src/remote/remote_daemon_dispatch.c

index c8e353ebd3d54e0e5253201f1918c1933236d435..1bd281dd6de2eda7c4682870785b200e7ebbec40 100644 (file)
@@ -2141,9 +2141,9 @@ remoteDispatchProbeURI(bool readonly,
             "vbox",
 # endif
         };
-        size_t i;
+        ssize_t i;
 
-        for (i = 0; i < ARRAY_CARDINALITY(drivers) && !*probeduri; i++) {
+        for (i = 0; i < (ssize_t) ARRAY_CARDINALITY(drivers) && !*probeduri; i++) {
             VIR_AUTOFREE(char *) daemonname = NULL;
             VIR_AUTOFREE(char *) daemonpath = NULL;
 
@@ -2187,9 +2187,9 @@ remoteDispatchProbeURI(bool readonly,
             "vz",
 # endif
         };
-        size_t i;
+        ssize_t i;
 
-        for (i = 0; i < ARRAY_CARDINALITY(drivers) && !*probeduri; i++) {
+        for (i = 0; i < (ssize_t) ARRAY_CARDINALITY(drivers) && !*probeduri; i++) {
             VIR_AUTOFREE(char *) sockname = NULL;
 
             if (virAsprintf(&sockname, "%s/run/libvirt/virt%sd-%s",