[PATCH v3 14/34] Adapt to VIR_STRDUP and VIR_STRNDUP in src/openvz/*

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



---
 src/openvz/openvz_conf.c   | 45 ++++++++++++++++++++++-----------------------
 src/openvz/openvz_driver.c | 39 +++++++++++++++------------------------
 2 files changed, 37 insertions(+), 47 deletions(-)

diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c
index 49fae28..1d401fc 100644
--- a/src/openvz/openvz_conf.c
+++ b/src/openvz/openvz_conf.c
@@ -135,12 +135,10 @@ openvzParseBarrierLimit(const char* value,
 {
     char *token;
     char *saveptr = NULL;
-    char *str = strdup(value);
+    char *str;
 
-    if (str == NULL) {
-        virReportOOMError();
+    if (VIR_STRDUP(str, value) < 0)
         goto error;
-    }
 
     token = strtok_r(str, ":", &saveptr);
     if (token == NULL) {
@@ -230,10 +228,8 @@ openvzReadNetworkConf(virDomainDefPtr def,
                 goto no_memory;
 
             net->type = VIR_DOMAIN_NET_TYPE_ETHERNET;
-            net->data.ethernet.ipaddr = strdup(token);
-
-            if (net->data.ethernet.ipaddr == NULL)
-                goto no_memory;
+            if (VIR_STRDUP(net->data.ethernet.ipaddr, token) < 0)
+                goto error;
 
             if (VIR_REALLOC_N(def->nets, def->nnets + 1) < 0)
                 goto no_memory;
@@ -405,7 +401,8 @@ openvzReadFSConf(virDomainDefPtr def,
             goto no_memory;
 
         fs->type = VIR_DOMAIN_FS_TYPE_TEMPLATE;
-        fs->src = strdup(temp);
+        if (VIR_STRDUP(fs->src, temp) < 0)
+            goto error;
     } else {
         /* OSTEMPLATE was not found, VE was booted from a private dir directly */
         ret = openvzReadVPSConfigParam(veid, "VE_PRIVATE", &temp);
@@ -423,12 +420,14 @@ openvzReadFSConf(virDomainDefPtr def,
             goto no_memory;
 
         fs->type = VIR_DOMAIN_FS_TYPE_MOUNT;
-        fs->src = openvz_replace(temp, "$VEID", veid_str);
+        if (!(fs->src = openvz_replace(temp, "$VEID", veid_str)))
+            goto no_memory;
 
         VIR_FREE(veid_str);
     }
 
-    fs->dst = strdup("/");
+    if (VIR_STRDUP(fs->dst, "/") < 0)
+        goto error;
 
     param = "DISKSPACE";
     ret = openvzReadVPSConfigParam(veid, param, &temp);
@@ -451,9 +450,6 @@ openvzReadFSConf(virDomainDefPtr def,
         }
     }
 
-    if (fs->src == NULL || fs->dst == NULL)
-        goto no_memory;
-
     if (VIR_REALLOC_N(def->fss, def->nfss + 1) < 0)
         goto no_memory;
     def->fss[def->nfss++] = fs;
@@ -607,10 +603,10 @@ int openvzLoadDomains(struct openvz_driver *driver) {
             goto cleanup;
         }
 
-        if (!(def->os.type = strdup("exe")))
-            goto no_memory;
-        if (!(def->os.init = strdup("/sbin/init")))
-            goto no_memory;
+        if (VIR_STRDUP(def->os.type, "exe") < 0)
+            goto cleanup;
+        if (VIR_STRDUP(def->os.init, "/sbin/init") < 0)
+            goto cleanup;
 
         ret = openvzReadVPSConfigParam(veid, "CPUS", &temp);
         if (ret < 0) {
@@ -800,8 +796,7 @@ openvzReadConfigParam(const char *conf_file, const char *param, char **value)
         saveptr = NULL;
         if ((token = strtok_r(sf, "\"\t\n", &saveptr)) != NULL) {
             VIR_FREE(*value);
-            *value = strdup(token);
-            if (*value == NULL) {
+            if (VIR_STRDUP(*value, token) < 0) {
                 err = 1;
                 break;
             }
@@ -952,14 +947,18 @@ openvzLocateConfDir(void)
 {
     const char *conf_dir_list[] = {"/etc/vz/conf", "/usr/local/etc/conf", NULL};
     int i=0;
+    char *ret = NULL;
 
     while (conf_dir_list[i]) {
-        if (!access(conf_dir_list[i], F_OK))
-            return strdup(conf_dir_list[i]);
+        if (!access(conf_dir_list[i], F_OK)) {
+            ignore_value(VIR_STRDUP(ret, conf_dir_list[i]));
+            goto cleanup;
+        }
         i++;
     }
 
-    return NULL;
+cleanup:
+    return ret;
 }
 
 /* Richard Steven's classic readline() function */
diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c
index e6d7146..65b1163 100644
--- a/src/openvz/openvz_driver.c
+++ b/src/openvz/openvz_driver.c
@@ -88,7 +88,7 @@ static void openvzDriverUnlock(struct openvz_driver *driver)
 
 struct openvz_driver ovz_driver;
 
-static void cmdExecFree(const char *cmdExec[])
+static void cmdExecFree(char *cmdExec[])
 {
     int i=-1;
     while (cmdExec[++i]) {
@@ -103,13 +103,8 @@ openvzDomainDefPostParse(virDomainDefPtr def,
                          void *opaque ATTRIBUTE_UNUSED)
 {
     /* fill the init path */
-    if (STREQ(def->os.type, "exe") && !def->os.init) {
-        if (!(def->os.init = strdup("/sbin/init"))) {
-            virReportOOMError();
-            return -1;
-        }
-    }
-
+    if (STREQ(def->os.type, "exe") && !def->os.init)
+        return VIR_STRDUP(def->os.init, "/sbin/init");
     return 0;
 }
 
@@ -358,8 +353,7 @@ static char *openvzDomainGetOSType(virDomainPtr dom)
         goto cleanup;
     }
 
-    if (!(ret = strdup(vm->def->os.type)))
-        virReportOOMError();
+    ignore_value(VIR_STRDUP(ret, vm->def->os.type));
 
 cleanup:
     if (vm)
@@ -772,12 +766,14 @@ openvzGenerateVethName(int veid, char *dev_name_ve)
 {
     char    dev_name[32];
     int     ifNo = 0;
+    char    *ret;
 
     if (sscanf(dev_name_ve, "%*[^0-9]%d", &ifNo) != 1)
         return NULL;
     if (snprintf(dev_name, sizeof(dev_name), "veth%d.%d", veid, ifNo) < 7)
         return NULL;
-    return strdup(dev_name);
+    ignore_value(VIR_STRDUP(ret, dev_name));
+    return ret;
 }
 
 static char *
@@ -788,7 +784,7 @@ openvzGenerateContainerVethName(int veid)
 
     /* try to get line "^NETIF=..." from config */
     if (openvzReadVPSConfigParam(veid, "NETIF", &temp) <= 0) {
-        name = strdup("eth0");
+        ignore_value(VIR_STRDUP(name, "eth0"));
     } else {
         char *saveptr = NULL;
         char *s;
@@ -803,15 +799,12 @@ openvzGenerateContainerVethName(int veid)
         }
 
         /* set new name */
-        ignore_value(virAsprintf(&name, "eth%d", max + 1));
+        if (virAsprintf(&name, "eth%d", max + 1) < 0)
+            virReportOOMError();
     }
 
     VIR_FREE(temp);
 
-    if (name == NULL) {
-        virReportOOMError();
-    }
-
     return name;
 }
 
@@ -821,7 +814,7 @@ openvzDomainSetNetwork(virConnectPtr conn, const char *vpsid,
                        virBufferPtr configBuf)
 {
     int rc = 0, narg;
-    const char *prog[OPENVZ_MAX_ARG];
+    char *prog[OPENVZ_MAX_ARG];
     char macaddr[VIR_MAC_STRING_BUFLEN];
     virMacAddr host_mac;
     char host_macaddr[VIR_MAC_STRING_BUFLEN];
@@ -830,9 +823,9 @@ openvzDomainSetNetwork(virConnectPtr conn, const char *vpsid,
 
 #define ADD_ARG_LIT(thisarg)                                            \
     do {                                                                \
-        if (narg >= OPENVZ_MAX_ARG)                                             \
+        if (narg >= OPENVZ_MAX_ARG)                                     \
                  goto no_memory;                                        \
-        if ((prog[narg++] = strdup(thisarg)) == NULL)                   \
+        if (VIR_STRDUP(prog[narg++], thisarg) < 0)                      \
             goto no_memory;                                             \
     } while (0)
 
@@ -928,7 +921,7 @@ openvzDomainSetNetwork(virConnectPtr conn, const char *vpsid,
 
     if (prog[0] != NULL) {
         ADD_ARG_LIT("--save");
-        if (virRun(prog, NULL) < 0) {
+        if (virRun((const char **)prog, NULL) < 0) {
            rc = -1;
            goto exit;
         }
@@ -1642,10 +1635,8 @@ static int openvzConnectListDefinedDomains(virConnectPtr conn ATTRIBUTE_UNUSED,
             continue;
         }
         snprintf(vpsname, sizeof(vpsname), "%d", veid);
-        if (!(names[got] = strdup(vpsname))) {
-            virReportOOMError();
+        if (VIR_STRDUP(names[got], vpsname) < 0)
             goto out;
-        }
         got ++;
     }
 
-- 
1.8.1.5

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]