From a7d1eb3c446fdbbd4183ba398c7f21a9fc0c1696 Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Mon, 14 Dec 2009 11:05:55 +0100 Subject: [PATCH] Fix a couple of problems in last patch Those were pointed by DanB in his review but not yet fixed * src/qemu/qemu_driver.c: qemudWaitForMonitor() use EnterMonitorWithDriver() and ExitMonitorWithDriver() there * src/qemu/qemu_monitor_text.c: checking fro strdu failure and hash table add error in qemuMonitorTextGetPtyPaths() --- src/qemu/qemu_driver.c | 4 ++-- src/qemu/qemu_monitor_text.c | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 7b8c4475b4..5a61b8ca8c 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1534,10 +1534,10 @@ qemudWaitForMonitor(virConnectPtr conn, goto cleanup; } - qemuDomainObjEnterMonitor(vm); + qemuDomainObjEnterMonitorWithDriver(driver, vm); qemuDomainObjPrivatePtr priv = vm->privateData; ret = qemuMonitorGetPtyPaths(priv->mon, paths); - qemuDomainObjExitMonitor(vm); + qemuDomainObjExitMonitorWithDriver(driver, vm); VIR_DEBUG("qemuMonitorGetPtyPaths returned %i", ret); if (ret == 0) { diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c index 3ed45bafa4..0cb9ea6854 100644 --- a/src/qemu/qemu_monitor_text.c +++ b/src/qemu/qemu_monitor_text.c @@ -1650,9 +1650,19 @@ int qemuMonitorTextGetPtyPaths(qemuMonitorPtr mon, /* Path is everything after needle to the end of the line */ *eol = '\0'; - char *path = needle + strlen(NEEDLE); + char *path = strdup(needle + strlen(NEEDLE)); + if (path == NULL) { + virReportOOMError(NULL); + goto cleanup; + } - virHashAddEntry(paths, id, strdup(path)); + if (virHashAddEntry(paths, id, path) < 0) { + qemudReportError(NULL, NULL, NULL, VIR_ERR_OPERATION_FAILED, + _("failed to save chardev path '%s'"), + path); + VIR_FREE(path); + goto cleanup; + } #undef NEEDLE next: