
On 05/03/2013 08:53 AM, Michal Privoznik wrote:
--- src/parallels/parallels_driver.c | 71 +++++++++++++++++---------------------- src/parallels/parallels_network.c | 23 +++++-------- src/parallels/parallels_storage.c | 62 +++++++++++----------------------- 3 files changed, 58 insertions(+), 98 deletions(-)
diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c @@ -209,8 +209,8 @@ parallelsGetSerialInfo(virDomainChrDefPtr chr, return -1; }
- if (!(chr->source.data.file.path = strdup(tmp))) - goto no_memory; + if (VIR_STRDUP(chr->source.data.file.path, tmp) < 0) + goto error; } else { parallelsParseError(); return -1; @@ -218,8 +218,7 @@ parallelsGetSerialInfo(virDomainChrDefPtr chr,
return 0;
- no_memory: - virReportOOMError(); +error: return -1;
It looks a bit odd that this function has inlined 'return -1' in some spots, and uses a label with no action other than 'return -1' in others. If you WANT to make it consistent, I don't care whether you use all inline or all goto; but I'm not going to insist on consistency.
@@ -771,13 +761,13 @@ parallelsLoadDomain(parallelsConnPtr privconn, virJSONValuePtr jobj) }
if (STREQ(tmp, "CT")) { - 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;
You could merge these into one 'if'.
+++ b/src/parallels/parallels_storage.c @@ -136,20 +136,9 @@ static char *parallelsMakePoolName(virConnectPtr conn, const char *path) bool found = false; int j;
- if (!(name = strdup(path))) { - virReportOOMError(); - return NULL; - } - - if (i == 0) - name = strdup(path);
Thanks for squashing this memory leak in the process :)
- else - ignore_value(virAsprintf(&name, "%s-%u", path, i)); - - if (!name) { - virReportOOMError(); + if ((!i && VIR_STRDUP(name, path) < 0) || + (i && virAsprintf(&name, "%s-%u", path, i) < 0)) return 0;
Pre-existing, but this should be 'return NULL'.
@@ -195,7 +184,8 @@ parallelsPoolCreateByPath(virConnectPtr conn, const char *path) }
def->type = VIR_STORAGE_POOL_DIR; - def->target.path = strdup(path); + if (VIR_STRDUP(def->target.path, path) < 0) + goto error;
silent->noisy, but looks like a good bug fix.
@@ -590,9 +579,9 @@ parallelsConnectListDefinedStoragePools(virConnectPtr conn, for (i = 0; i < privconn->pools.count && n < nnames; i++) { virStoragePoolObjLock(privconn->pools.objs[i]); if (!virStoragePoolObjIsActive(privconn->pools.objs[i]) && - !(names[n++] = strdup(privconn->pools.objs[i]->def->name))) { + VIR_STRDUP(names[n++], privconn->pools.objs[i]->def->name) < 0) { virStoragePoolObjUnlock(privconn->pools.objs[i]); - goto no_memory; + goto error; } virStoragePoolObjUnlock(privconn->pools.objs[i]); } @@ -600,7 +589,7 @@ parallelsConnectListDefinedStoragePools(virConnectPtr conn,
return n;
-no_memory: +error: virReportOOMError();
Drop this oom, since the only client of this label already reported oom. ACK with minor fixes. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org