summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.c
diff options
context:
space:
mode:
Diffstat (limited to 'MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.c')
-rw-r--r--MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.c11
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;
}