mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
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.
This commit is contained in:
parent
13d5a6b83d
commit
d99fe011a2
@ -3852,6 +3852,15 @@ qemuDomainSaveImageOpen(struct qemud_driver *driver,
|
|||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (saferead(fd, &header, sizeof(header)) != sizeof(header)) {
|
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,
|
qemuReportError(VIR_ERR_OPERATION_FAILED,
|
||||||
"%s", _("failed to read qemu header"));
|
"%s", _("failed to read qemu header"));
|
||||||
goto error;
|
goto error;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user