From 8a0910dd4976ec58adc400f7e87129f772798a65 Mon Sep 17 00:00:00 2001 From: Murai Takashi Date: Wed, 29 Nov 2023 20:46:12 +0900 Subject: [PATCH] disk/virtual: Fix use after free Pointed out by cppcheck. Change-Id: I785b7ee5623ac9fb37f2be0b9a75cdd82b5784fa Reviewed-on: https://review.haiku-os.org/c/haiku/+/7257 Tested-by: Commit checker robot Reviewed-by: Adrien Destugues --- .../kernel/drivers/disk/virtual/virtio_block/virtio_block.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/drivers/disk/virtual/virtio_block/virtio_block.cpp b/src/add-ons/kernel/drivers/disk/virtual/virtio_block/virtio_block.cpp index e350a1ef13..faa01181d0 100644 --- a/src/add-ons/kernel/drivers/disk/virtual/virtio_block/virtio_block.cpp +++ b/src/add-ons/kernel/drivers/disk/virtual/virtio_block/virtio_block.cpp @@ -558,9 +558,10 @@ virtio_block_init_driver(device_node *node, void **cookie) B_ANY_KERNEL_BLOCK_ADDRESS, B_PAGE_SIZE, B_FULL_LOCK, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA); if (info->bufferArea < B_OK) { + status_t status = info->bufferArea; delete info->dma_resource; free(info); - return info->bufferArea; + return status; } physical_entry entry;