From: Charles Duffy Date: Tue, 22 Sep 2009 06:56:39 +0000 (+0200) Subject: prevent attempt to call cat -c during virDomainSave to raw X-Git-Tag: v0.7.2~159 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=faa8bf107960ebd0f273a5d4a2c90a1012f6ab3a;p=thirdparty%2Flibvirt.git 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 --- 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);