mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-03 04:13:31 +00:00
- Free the MDL on failure
- Use _SEH_YIELD svn path=/branches/aicom-network-fixes/; revision=35291
This commit is contained in:
@@ -864,17 +864,12 @@ NTSTATUS TdiSend
|
||||
MmProbeAndLockPages(Mdl, KernelMode, IoModifyAccess);
|
||||
} _SEH_HANDLE {
|
||||
AFD_DbgPrint(MIN_TRACE, ("MmProbeAndLockPages() failed.\n"));
|
||||
IoFreeMdl(Mdl);
|
||||
IoFreeIrp(*Irp);
|
||||
*Irp = NULL;
|
||||
Status = STATUS_INSUFFICIENT_RESOURCES;
|
||||
_SEH_YIELD(return STATUS_INSUFFICIENT_RESOURCES);
|
||||
} _SEH_END;
|
||||
|
||||
if( !NT_SUCCESS(Status) ) {
|
||||
IoFreeIrp(*Irp);
|
||||
*Irp = NULL;
|
||||
return Status;
|
||||
}
|
||||
|
||||
AFD_DbgPrint(MID_TRACE,("AFD>>> Got an MDL: %x\n", Mdl));
|
||||
|
||||
TdiBuildSend(*Irp, /* I/O Request Packet */
|
||||
@@ -952,17 +947,12 @@ NTSTATUS TdiReceive(
|
||||
AFD_DbgPrint(MIN_TRACE, ("probe and lock done\n"));
|
||||
} _SEH_HANDLE {
|
||||
AFD_DbgPrint(MIN_TRACE, ("MmProbeAndLockPages() failed.\n"));
|
||||
IoFreeMdl(Mdl);
|
||||
IoFreeIrp(*Irp);
|
||||
*Irp = NULL;
|
||||
Status = STATUS_INSUFFICIENT_RESOURCES;
|
||||
_SEH_YIELD(return STATUS_INSUFFICIENT_RESOURCES);
|
||||
} _SEH_END;
|
||||
|
||||
if( !NT_SUCCESS(Status) ) {
|
||||
IoFreeIrp(*Irp);
|
||||
*Irp = NULL;
|
||||
return Status;
|
||||
}
|
||||
|
||||
AFD_DbgPrint(MID_TRACE,("AFD>>> Got an MDL: %x\n", Mdl));
|
||||
|
||||
TdiBuildReceive(*Irp, /* I/O Request Packet */
|
||||
@@ -1055,6 +1045,7 @@ NTSTATUS TdiReceiveDatagram(
|
||||
MmProbeAndLockPages(Mdl, KernelMode, IoModifyAccess);
|
||||
} _SEH_HANDLE {
|
||||
AFD_DbgPrint(MIN_TRACE, ("MmProbeAndLockPages() failed.\n"));
|
||||
IoFreeMdl(Mdl);
|
||||
IoFreeIrp(*Irp);
|
||||
*Irp = NULL;
|
||||
_SEH_YIELD(return STATUS_INSUFFICIENT_RESOURCES);
|
||||
@@ -1153,6 +1144,7 @@ NTSTATUS TdiSendDatagram(
|
||||
MmProbeAndLockPages(Mdl, KernelMode, IoModifyAccess);
|
||||
} _SEH_HANDLE {
|
||||
AFD_DbgPrint(MIN_TRACE, ("MmProbeAndLockPages() failed.\n"));
|
||||
IoFreeMdl(Mdl);
|
||||
IoFreeIrp(*Irp);
|
||||
*Irp = NULL;
|
||||
_SEH_YIELD(return STATUS_INSUFFICIENT_RESOURCES);
|
||||
|
||||
Reference in New Issue
Block a user