The error path for a failure in one of the two bdrv_aligned_preadv() calls leaked head_buf or tail_buf, respectively. This fixes the memory leak.
Reported-by: Laszlo Ersek <ler...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> --- block.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block.c b/block.c index ac0ccac..c1d1f74 100644 --- a/block.c +++ b/block.c @@ -3279,9 +3279,9 @@ fail: if (use_local_qiov) { qemu_iovec_destroy(&local_qiov); - qemu_vfree(head_buf); - qemu_vfree(tail_buf); } + qemu_vfree(head_buf); + qemu_vfree(tail_buf); return ret; } -- 1.8.1.4