On 11/10/2017 04:00 PM, Max Reitz wrote: >> Trying to understand this: we have a double corruption, because we >> encountered a refblock that points outside of the image, but fixing the >> refblock in turn encounters a second refblock that points within the >> image but to an unaligned area. > > No, it's the very same. As far as I've seen it, the repair function > tries to fix the "refblock is outside image" error by resizing the image > so the refblock is inside the image. However, the subsequent > bdrv_truncate() detects the alignment corruption, too, and thus marks > the image corrupt. Is resizing the image to be larger always a wise thing compared to just rebuilding the refcount? If I stick a large enough out-of-image value in the table, can I cause a denial-of-service by making qemu try to allocate petabytes of storage just to bring it into range? -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org