1
0
mirror of https://github.com/winfsp/winfsp.git synced 2026-03-06 23:59:26 -06:00

sys: FspFastIoDeviceControl: check input/output buffer lengths

This commit is contained in:
Bill Zissimopoulos
2026-02-17 17:07:28 +02:00
parent ae40f0edb1
commit 13d306f586
2 changed files with 21 additions and 0 deletions

View File

@@ -234,6 +234,20 @@ void mount_volume_transact_dotest(PWSTR DeviceName, PWSTR Prefix)
FSP_FSCTL_TRANSACT_REQ *Request = (PVOID)RequestBuf, *NextRequest;
FSP_FSCTL_TRANSACT_RSP *Response = (PVOID)ResponseBuf;
RequestBufSize = 0;
Result = FspFsctlTransact(VolumeHandle, ResponseBuf, 1, 0, &RequestBufSize, FALSE);
ASSERT(STATUS_INVALID_PARAMETER == Result);
RequestBufSize = 0;
Result = FspFsctlTransact(VolumeHandle, ResponseBuf, 1, 0, &RequestBufSize, TRUE);
ASSERT(STATUS_INVALID_PARAMETER == Result);
RequestBufSize = FSP_FSCTL_TRANSACT_BUFFER_SIZEMIN - 1;
Result = FspFsctlTransact(VolumeHandle, 0, 0, RequestBuf, &RequestBufSize, FALSE);
ASSERT(STATUS_BUFFER_TOO_SMALL == Result);
RequestBufSize = FSP_FSCTL_TRANSACT_BATCH_BUFFER_SIZEMIN - 1;
Result = FspFsctlTransact(VolumeHandle, 0, 0, RequestBuf, &RequestBufSize, TRUE);
ASSERT(STATUS_BUFFER_TOO_SMALL == Result);
ResponseBufSize = 0;
RequestBufSize = sizeof RequestBuf;
Result = FspFsctlTransact(VolumeHandle, 0, 0, RequestBuf, &RequestBufSize, TRUE);