From 3b7c5ab983f4655ae02b8af4517d89839530ee5f Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Wed, 14 Aug 2019 14:41:42 +0200 Subject: [PATCH] remote_daemon_dispatch.c: typecast ARRAY_CARDINALITY() in remoteDispatchProbeURI() 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 Reviewed-by: Jim Fehlig --- src/remote/remote_daemon_dispatch.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon_dispatch.c index c8e353ebd3..1bd281dd6d 100644 --- a/src/remote/remote_daemon_dispatch.c +++ b/src/remote/remote_daemon_dispatch.c @@ -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", -- GitLab