It allocates with qemu_blockalign(), therefore it must free with qemu_vfree(), not g_free().
Since I'm touching it anyway, move the free to a more obviosly correct place. Signed-off-by: Markus Armbruster <arm...@redhat.com> --- block/mirror.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/mirror.c b/block/mirror.c index 8aeacbf..27a7d8c 100644 --- a/block/mirror.c +++ b/block/mirror.c @@ -223,9 +223,9 @@ static void coroutine_fn mirror_run(void *opaque) break; } } + qemu_vfree(s->buf); immediate_exit: - g_free(s->buf); bdrv_set_dirty_tracking(bs, false); bdrv_iostatus_disable(s->target); if (s->should_complete && ret == 0) { -- 1.7.11.7