From: Avi Kivity <[email protected]> The scsi passthrough handler falls through after completing a request into the failure path, resulting in a use after free.
Reproducible by running a guest with aio=native on a block device. Reported-by: Stefan Priebe <[email protected]> Signed-off-by: Avi Kivity <[email protected]> Signed-off-by: Stefan Hajnoczi <[email protected]> Signed-off-by: Kevin Wolf <[email protected]> (cherry picked from commit 730a9c53b4e52681fcfe31cf38854cbf91e132c7) Signed-off-by: Michael Roth <[email protected]> --- hw/virtio-blk.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c index fe07746..f44d244 100644 --- a/hw/virtio-blk.c +++ b/hw/virtio-blk.c @@ -253,6 +253,7 @@ static void virtio_blk_handle_scsi(VirtIOBlockReq *req) virtio_blk_req_complete(req, status); g_free(req); + return; #else abort(); #endif -- 1.7.9.5
