提交 b0b85c45 编写于 作者: M Michael Santos 提交者: Eric Blake

qemu: clean up OOM checks

上级 8e2e4780
...@@ -182,6 +182,7 @@ Patches have also been contributed by: ...@@ -182,6 +182,7 @@ Patches have also been contributed by:
Scott Moser <smoser@ubuntu.com> Scott Moser <smoser@ubuntu.com>
Guannan Ren <gren@redhat.com> Guannan Ren <gren@redhat.com>
John Williams <john.williams@petalogix.com> John Williams <john.williams@petalogix.com>
Michael Santos <michael.santos@gmail.com>
[....send patches to get your name here....] [....send patches to get your name here....]
......
...@@ -5712,6 +5712,9 @@ qemuParseCommandLineCPU(virDomainDefPtr dom, ...@@ -5712,6 +5712,9 @@ qemuParseCommandLineCPU(virDomainDefPtr dom,
else else
feature = strdup(p); feature = strdup(p);
if (!feature)
goto no_memory;
ret = virCPUDefAddFeature(cpu, feature, policy); ret = virCPUDefAddFeature(cpu, feature, policy);
VIR_FREE(feature); VIR_FREE(feature);
if (ret < 0) if (ret < 0)
...@@ -6028,6 +6031,8 @@ virDomainDefPtr qemuParseCommandLine(virCapsPtr caps, ...@@ -6028,6 +6031,8 @@ virDomainDefPtr qemuParseCommandLine(virCapsPtr caps,
if (STREQ(arg, "-cdrom")) { if (STREQ(arg, "-cdrom")) {
disk->device = VIR_DOMAIN_DISK_DEVICE_CDROM; disk->device = VIR_DOMAIN_DISK_DEVICE_CDROM;
disk->dst = strdup("hdc"); disk->dst = strdup("hdc");
if (!disk->dst)
goto no_memory;
disk->readonly = 1; disk->readonly = 1;
} else { } else {
if (STRPREFIX(arg, "-fd")) { if (STRPREFIX(arg, "-fd")) {
...@@ -6041,8 +6046,12 @@ virDomainDefPtr qemuParseCommandLine(virCapsPtr caps, ...@@ -6041,8 +6046,12 @@ virDomainDefPtr qemuParseCommandLine(virCapsPtr caps,
disk->bus = VIR_DOMAIN_DISK_BUS_SCSI; disk->bus = VIR_DOMAIN_DISK_BUS_SCSI;
} }
disk->dst = strdup(arg + 1); disk->dst = strdup(arg + 1);
if (!disk->dst)
goto no_memory;
} }
disk->src = strdup(val); disk->src = strdup(val);
if (!disk->src)
goto no_memory;
if (disk->type == VIR_DOMAIN_DISK_TYPE_NETWORK) { if (disk->type == VIR_DOMAIN_DISK_TYPE_NETWORK) {
char *host, *port; char *host, *port;
...@@ -6058,17 +6067,14 @@ virDomainDefPtr qemuParseCommandLine(virCapsPtr caps, ...@@ -6058,17 +6067,14 @@ virDomainDefPtr qemuParseCommandLine(virCapsPtr caps,
goto error; goto error;
} }
*port++ = '\0'; *port++ = '\0';
if (VIR_ALLOC(disk->hosts) < 0) { if (VIR_ALLOC(disk->hosts) < 0)
virReportOOMError(); goto no_memory;
goto error;
}
disk->nhosts = 1; disk->nhosts = 1;
disk->hosts->name = host; disk->hosts->name = host;
disk->hosts->port = strdup(port); disk->hosts->port = strdup(port);
if (!disk->hosts->port) { if (!disk->hosts->port)
virReportOOMError(); goto no_memory;
goto error; VIR_FREE(disk->src);
}
disk->src = NULL; disk->src = NULL;
break; break;
case VIR_DOMAIN_DISK_PROTOCOL_RBD: case VIR_DOMAIN_DISK_PROTOCOL_RBD:
...@@ -6088,22 +6094,16 @@ virDomainDefPtr qemuParseCommandLine(virCapsPtr caps, ...@@ -6088,22 +6094,16 @@ virDomainDefPtr qemuParseCommandLine(virCapsPtr caps,
goto error; goto error;
} }
*vdi++ = '\0'; *vdi++ = '\0';
if (VIR_ALLOC(disk->hosts) < 0) { if (VIR_ALLOC(disk->hosts) < 0)
virReportOOMError(); goto no_memory;
goto error;
}
disk->nhosts = 1; disk->nhosts = 1;
disk->hosts->name = disk->src; disk->hosts->name = disk->src;
disk->hosts->port = strdup(port); disk->hosts->port = strdup(port);
if (!disk->hosts->port) { if (!disk->hosts->port)
virReportOOMError(); goto no_memory;
goto error;
}
disk->src = strdup(vdi); disk->src = strdup(vdi);
if (!disk->src) { if (!disk->src)
virReportOOMError(); goto no_memory;
goto error;
}
} }
break; break;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册