From 31d06d1d1b2e2c0bebfd68e335d986f5842aa635 Mon Sep 17 00:00:00 2001 From: Raghunath M Date: Fri, 29 Jul 2022 13:12:13 +0530 Subject: [PATCH] check the DataBuffer length before writing lunListLength --- module/os/windows/zfs/zfs_windows_zvol_scsi.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/module/os/windows/zfs/zfs_windows_zvol_scsi.c b/module/os/windows/zfs/zfs_windows_zvol_scsi.c index cec8313b04a4..6d9f549a00a4 100644 --- a/module/os/windows/zfs/zfs_windows_zvol_scsi.c +++ b/module/os/windows/zfs/zfs_windows_zvol_scsi.c @@ -885,8 +885,13 @@ ScsiOpReportLuns( } } - *((ULONG*)&pLunList->LunListLength) = - RtlUlongByteSwap(totalLun * sizeof (pLunList->Lun[0])); + if (pSrb->DataTransferLength >= + FIELD_OFFSET(LUN_LIST, LunListLength) + + sizeof (pLunList->LunListLength)) { + *((ULONG*)&pLunList->LunListLength) = + RtlUlongByteSwap(totalLun * sizeof (pLunList->Lun[0])); + } + pSrb->DataTransferLength = FIELD_OFFSET(LUN_LIST, Lun) + (GoodLunIdx * sizeof (pLunList->Lun[0]));