The virStringListLength function does not ever modify the passed string list. It merely counts the items in it. Make sure that we reflect this bit in the function header. Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> --- This is hugely driven by a compilation error observed after the latest Martin revert (ea913d185df9). I'm seeing this compilation error: util/virpolkit.c: In function 'virPolkitCheckAuth': util/virpolkit.c:93:47: error: passing argument 1 of 'virStringListLength' from incompatible pointer type [-Werror] virStringListLength(details) / 2, ^ In file included from util/virpolkit.c:33:0: util/virstring.h:204:8: note: expected 'char **' but argument is of type 'const char **' size_t virStringListLength(char **strings); But for some reason, implicit typecast from char ** to const char ** nor const char * const * is allowed by gcc. I don't really understand why, so if anybody has some explanation, please do explain. src/lxc/lxc_native.c | 2 +- src/storage/storage_driver.c | 2 +- src/util/virprocess.c | 2 +- src/util/virstoragefile.c | 2 +- src/util/virstring.c | 2 +- src/util/virstring.h | 2 +- tests/virstringtest.c | 4 ++-- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c index 78f9c67..ef92c7d 100644 --- a/src/lxc/lxc_native.c +++ b/src/lxc/lxc_native.c @@ -611,7 +611,7 @@ lxcNetworkWalkCallback(const char *name, virConfValuePtr value, void *data) family = AF_INET6; ipparts = virStringSplit(value->str, "/", 2); - if (virStringListLength(ipparts) != 2 || + if (virStringListLength((const char * const *)ipparts) != 2 || virSocketAddrParse(&ip->address, ipparts[0], family) < 0 || virStrToLong_ui(ipparts[1], NULL, 10, &ip->prefix) < 0) { diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index ed5395b..8ee2840 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -3209,7 +3209,7 @@ virStorageAddISCSIPoolSourceHost(virDomainDiskDefPtr def, if (!(tokens = virStringSplit(def->src->srcpool->volume, ":", 0))) goto cleanup; - if (virStringListLength(tokens) != 4) { + if (virStringListLength((const char * const *)tokens) != 4) { virReportError(VIR_ERR_INTERNAL_ERROR, _("unexpected iscsi volume name '%s'"), def->src->srcpool->volume); diff --git a/src/util/virprocess.c b/src/util/virprocess.c index 277b3bc..c7ffa42 100644 --- a/src/util/virprocess.c +++ b/src/util/virprocess.c @@ -965,7 +965,7 @@ int virProcessGetStartTime(pid_t pid, tokens = virStringSplit(tmp, " ", 0); - if (virStringListLength(tokens) < 20) { + if (virStringListLength((const char * const *)tokens) < 20) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Cannot find start time in %s"), filename); diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index 101070f..5a4e101 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -1283,7 +1283,7 @@ virStorageFileParseChainIndex(const char *diskTarget, if (name && diskTarget) strings = virStringSplit(name, "[", 2); - if (virStringListLength(strings) != 2) + if (virStringListLength((const char * const *) strings) != 2) goto cleanup; if (virStrToLong_uip(strings[1], &suffix, 10, &idx) < 0 || diff --git a/src/util/virstring.c b/src/util/virstring.c index fc4f5ba..7ec42aa 100644 --- a/src/util/virstring.c +++ b/src/util/virstring.c @@ -765,7 +765,7 @@ virStrndup(char **dest, } -size_t virStringListLength(char **strings) +size_t virStringListLength(const char * const *strings) { size_t i = 0; diff --git a/src/util/virstring.h b/src/util/virstring.h index cdf1058..16ed3b2 100644 --- a/src/util/virstring.h +++ b/src/util/virstring.h @@ -201,7 +201,7 @@ int virVasprintfInternal(bool report, int domcode, const char *filename, # define VIR_STRNDUP_QUIET(dst, src, n) virStrndup(&(dst), src, n, false, \ 0, NULL, NULL, 0) -size_t virStringListLength(char **strings); +size_t virStringListLength(const char * const *strings); /** * virVasprintf diff --git a/tests/virstringtest.c b/tests/virstringtest.c index 38d0126..7a1dcfd 100644 --- a/tests/virstringtest.c +++ b/tests/virstringtest.c @@ -336,10 +336,10 @@ testStringSearch(const void *opaque) goto cleanup; } - if (virStringListLength(matches) != nmatches) { + if (virStringListLength((const char * const *)matches) != nmatches) { fprintf(stderr, "expected %zu matches on %s but got %zd matches\n", data->expectNMatches, data->str, - virStringListLength(matches)); + virStringListLength((const char * const *)matches)); goto cleanup; } -- 2.4.10 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list