]> git.proxmox.com Git - mirror_qemu.git/commit
mirror: Do not dereference invalid pointers
authorMax Reitz <mreitz@redhat.com>
Mon, 14 Oct 2019 15:39:28 +0000 (17:39 +0200)
committerMax Reitz <mreitz@redhat.com>
Mon, 28 Oct 2019 10:49:37 +0000 (11:49 +0100)
commitf93c3add3a773e0e3f6277e5517583c4ad3a43c2
tree619a0e6b629320f905b7abede7cdd39c374a5681
parente87a09d6251b28d1494a3728441d8fdb93a8d57d
mirror: Do not dereference invalid pointers

mirror_exit_common() may be called twice (if it is called from
mirror_prepare() and fails, it will be called from mirror_abort()
again).

In such a case, many of the pointers in the MirrorBlockJob object will
already be freed.  This can be seen most reliably for s->target, which
is set to NULL (and then dereferenced by blk_bs()).

Cc: qemu-stable@nongnu.org
Fixes: 737efc1eda23b904fbe0e66b37715fb0e5c3e58b
Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-id: 20191014153931.20699-2-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
block/mirror.c