--- 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