From d1a71023899b419960df83f81d5ed64268e7b2df Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Tue, 9 Feb 2016 18:18:49 +0100 Subject: [PATCH] virStringListLength: Ensure const correctness 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 (crobinso: fix up spacing and squash in sheepdog bit suggested by Andrea) --- src/lxc/lxc_native.c | 2 +- src/storage/storage_backend_sheepdog.c | 3 ++- 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 ++-- 8 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c index 78f9c6789b..ef92c7ddff 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_backend_sheepdog.c b/src/storage/storage_backend_sheepdog.c index 1200813911..a3bd78a2d1 100644 --- a/src/storage/storage_backend_sheepdog.c +++ b/src/storage/storage_backend_sheepdog.c @@ -167,7 +167,8 @@ virStorageBackendSheepdogRefreshAllVol(virConnectPtr conn ATTRIBUTE_UNUSED, cells = virStringSplit(line, " ", 0); - if (cells != NULL && virStringListLength(cells) > 2) { + if (cells != NULL && + virStringListLength((const char * const *)cells) > 2) { if (virStorageBackendSheepdogAddVolume(conn, pool, cells[1]) < 0) goto cleanup; } diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index ed5395be9c..8ee28406f2 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 277b3bc34e..c7ffa42066 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 101070f95a..3e79ae1396 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 fc4f5ba7e6..7ec42aa189 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 cdf1058825..16ed3b29a5 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 38d0126d26..7a1dcfdfb8 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; }