From d99fe011a2bbf3b42f482edb7c86c60b4f8ccd09 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Thu, 15 Dec 2011 17:28:18 -0700 Subject: [PATCH] qemu: detect truncated file as invalid save image If managed save fails at the right point in time, then the save image can end up with 0 bytes in length (no valid header), and our attempts in commit 55d88def to detect and skip invalid save files missed this case. * src/qemu/qemu_driver.c (qemuDomainSaveImageOpen): Also unlink empty file as corrupt. Reported by Dennis Householder. --- src/qemu/qemu_driver.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 725b5930df..0d99ce4c2f 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -3852,6 +3852,15 @@ qemuDomainSaveImageOpen(struct qemud_driver *driver, goto error; if (saferead(fd, &header, sizeof(header)) != sizeof(header)) { + if (unlink_corrupt) { + if (VIR_CLOSE(fd) < 0 || unlink(path) < 0) { + virReportSystemError(errno, + _("cannot remove corrupt file: %s"), + path); + goto error; + } + return -3; + } qemuReportError(VIR_ERR_OPERATION_FAILED, "%s", _("failed to read qemu header")); goto error; -- GitLab