1
0
mirror of https://github.com/SoftEtherVPN/SoftEtherVPN.git synced 2026-04-28 17:59:26 +03:00

Merge PR #666: Added Try+Except block for ProbeForRead

This commit is contained in:
Davide Beatrici
2018-08-23 04:16:05 +02:00
committed by GitHub
+9 -2
View File
@@ -634,9 +634,15 @@ NTSTATUS NeoNdisDispatch(DEVICE_OBJECT *DeviceObject, IRP *Irp)
{ {
MmProbeAndLockPages(mdl, KernelMode, IoReadAccess); MmProbeAndLockPages(mdl, KernelMode, IoReadAccess);
} }
__try
{
ProbeForRead(buf, NEO_EXCHANGE_BUFFER_SIZE, 1); ProbeForRead(buf, NEO_EXCHANGE_BUFFER_SIZE, 1);
}
__except (EXCEPTION_EXECUTE_HANDLER)
{
check_ok = false;
}
if (check_ok) {
// Write // Write
NeoWrite(buf); NeoWrite(buf);
Irp->IoStatus.Information = stack->Parameters.Write.Length; Irp->IoStatus.Information = stack->Parameters.Write.Length;
@@ -651,6 +657,7 @@ NTSTATUS NeoNdisDispatch(DEVICE_OBJECT *DeviceObject, IRP *Irp)
} }
} }
} }
}
if (ok == FALSE) if (ok == FALSE)
{ {
// An error occurred // An error occurred