From faa8bf107960ebd0f273a5d4a2c90a1012f6ab3a Mon Sep 17 00:00:00 2001 From: Charles Duffy Date: Tue, 22 Sep 2009 08:56:39 +0200 Subject: [PATCH] prevent attempt to call cat -c during virDomainSave to raw This was prevent virDomainSave from working properly by default, which is a bad thing. Signed-off-by: Chris Lalancette --- src/qemu/qemu_driver.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index a1f3c83f0a..942aff2095 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -3906,17 +3906,26 @@ static int qemudDomainSave(virDomainPtr dom, goto cleanup; } - const char *prog = qemudSaveCompressionTypeToString(header.compressed); - if (prog == NULL) { - qemudReportError(dom->conn, dom, NULL, VIR_ERR_INTERNAL_ERROR, - _("Invalid compress format %d"), header.compressed); - goto cleanup; - } + { + const char *prog = qemudSaveCompressionTypeToString(header.compressed); + const char *args; - if (STREQ (prog, "raw")) - prog = "cat"; - internalret = virAsprintf(&command, "migrate \"exec:" - "%s -c >> '%s' 2>/dev/null\"", prog, safe_path); + if (prog == NULL) { + qemudReportError(dom->conn, dom, NULL, VIR_ERR_INTERNAL_ERROR, + _("Invalid compress format %d"), header.compressed); + goto cleanup; + } + + if (STREQ (prog, "raw")) { + prog = "cat"; + args = ""; + } else { + args = "-c"; + } + internalret = virAsprintf(&command, "migrate \"exec:" + "%s %s >> '%s' 2>/dev/null\"", prog, args, + safe_path); + } if (internalret < 0) { virReportOOMError(dom->conn); -- GitLab