]> git.proxmox.com Git - mirror_qemu.git/commit
commit: Fix use after free in completion
authorKevin Wolf <kwolf@redhat.com>
Fri, 2 Jun 2017 21:04:55 +0000 (23:04 +0200)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Thu, 24 Aug 2017 21:51:19 +0000 (16:51 -0500)
commitf28b8906dd38816ed4da5a98bdeb5ff797afae8a
treee10edbf98303eb667e21b452f0fc0c11e940bc01
parentbace1f90f9207ec79e9d28eb668532b43ac8b81f
commit: Fix use after free in completion

The final bdrv_set_backing_hd() could be working on already freed nodes
because the commit job drops its references (through BlockBackends) to
both overlay_bs and top already a bit earlier.

One way to trigger the bug is hot unplugging a disk for which
blockdev_mark_auto_del() cancels the block job.

Fix this by taking BDS-level references while we're still using the
nodes.

Cc: qemu-stable@nongnu.org
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
(cherry picked from commit 19ebd13ed45ad5d5f277f5914d55b83f13eb09eb)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
block/commit.c