From 4b588b36ad5508fd2aeeaa8481efd59bb111241b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sat, 7 Apr 2018 11:55:03 +0200 Subject: [PATCH] virtio_scsi: avoid unbounded stack usage in ExecuteRequest(). --- .../kernel/busses/scsi/virtio/VirtioSCSIController.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/busses/scsi/virtio/VirtioSCSIController.cpp b/src/add-ons/kernel/busses/scsi/virtio/VirtioSCSIController.cpp index 9cc5edceb2..ca77bee80f 100644 --- a/src/add-ons/kernel/busses/scsi/virtio/VirtioSCSIController.cpp +++ b/src/add-ons/kernel/busses/scsi/virtio/VirtioSCSIController.cpp @@ -6,6 +6,8 @@ #include "VirtioSCSIPrivate.h" +#include + #include #include #include @@ -207,7 +209,7 @@ VirtioSCSIController::ExecuteRequest(scsi_ccb *ccb) uint32 inCount = (isIn ? ccb->sg_count : 0) + 1; uint32 outCount = (isOut ? ccb->sg_count : 0) + 1; - physical_entry entries[inCount + outCount]; + BStackOrHeapArray entries(inCount + outCount); fRequest->FillRequest(inCount, outCount, entries); {