When parsing the barrier:limit values, use virStringSplitCount in order to split the pair and make the approriate checks to get the data. Signed-off-by: John Ferlan <jferlan@xxxxxxxxxx> --- src/openvz/openvz_conf.c | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c index e32dd6f..cf0d67c 100644 --- a/src/openvz/openvz_conf.c +++ b/src/openvz/openvz_conf.c @@ -133,35 +133,25 @@ openvzParseBarrierLimit(const char* value, unsigned long long *barrier, unsigned long long *limit) { - char *token; - char *saveptr = NULL; - char *str; + char **tmp = NULL; + size_t ntmp = 0; int ret = -1; - if (VIR_STRDUP(str, value) < 0) + if (!(tmp = virStringSplitCount(value, ":", 0, &ntmp))) goto error; - token = strtok_r(str, ":", &saveptr); - if (token == NULL) { + if (ntmp != 2) goto error; - } else { - if (barrier != NULL) { - if (virStrToLong_ull(token, NULL, 10, barrier)) - goto error; - } - } - token = strtok_r(NULL, ":", &saveptr); - if (token == NULL) { + + if (barrier && virStrToLong_ull(tmp[0], NULL, 10, barrier)) goto error; - } else { - if (limit != NULL) { - if (virStrToLong_ull(token, NULL, 10, limit)) - goto error; - } - } + + if (limit && virStrToLong_ull(tmp[1], NULL, 10, limit)) + goto error; + ret = 0; error: - VIR_FREE(str); + virStringFreeListCount(tmp, ntmp); return ret; } -- 2.5.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list