[libvirt] [PATCH 1/3] openvz: Use virStringSplitCount instead of strtok_r

John Ferlan jferlan at redhat.com
Thu Feb 25 14:21:33 UTC 2016


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 at redhat.com>
---
 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




More information about the libvir-list mailing list