diff options
Diffstat (limited to 'MdeModulePkg/Library')
-rw-r--r-- | MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.c b/MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.c index 110e4890c8..2a65422e1c 100644 --- a/MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.c +++ b/MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.c @@ -913,8 +913,9 @@ TcpIoReceive ( FragmentCount = Packet->BlockOpNum; Fragment = AllocatePool (FragmentCount * sizeof (NET_FRAGMENT)); - if (Fragment == NULL) { - return EFI_OUT_OF_RESOURCES; + if (Fragment == NULL) {
+ Status = EFI_OUT_OF_RESOURCES;
+ goto ON_EXIT;
} // // Build the fragment table. @@ -988,8 +989,10 @@ ON_EXIT: } else {
TcpIo->RxToken.Tcp6Token.Packet.RxData = NULL;
}
-
- FreePool (Fragment);
+
+ if (Fragment != NULL) {
+ FreePool (Fragment);
+ }
return Status;
}
|