mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-20 11:48:28 -06:00
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 <clalance@redhat.com>
This commit is contained in:
parent
58df0daa7f
commit
faa8bf1079
@ -3906,17 +3906,26 @@ static int qemudDomainSave(virDomainPtr dom,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *prog = qemudSaveCompressionTypeToString(header.compressed);
|
{
|
||||||
if (prog == NULL) {
|
const char *prog = qemudSaveCompressionTypeToString(header.compressed);
|
||||||
qemudReportError(dom->conn, dom, NULL, VIR_ERR_INTERNAL_ERROR,
|
const char *args;
|
||||||
_("Invalid compress format %d"), header.compressed);
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (STREQ (prog, "raw"))
|
if (prog == NULL) {
|
||||||
prog = "cat";
|
qemudReportError(dom->conn, dom, NULL, VIR_ERR_INTERNAL_ERROR,
|
||||||
internalret = virAsprintf(&command, "migrate \"exec:"
|
_("Invalid compress format %d"), header.compressed);
|
||||||
"%s -c >> '%s' 2>/dev/null\"", prog, safe_path);
|
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) {
|
if (internalret < 0) {
|
||||||
virReportOOMError(dom->conn);
|
virReportOOMError(dom->conn);
|
||||||
|
Loading…
Reference in New Issue
Block a user