MdeModulePkg: Fix potential memory leaks in DxeHttpLib.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Paulo Alcantara <pcacjr@gmail.com>
Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
This commit is contained in:
Paulo Alcantara 2017-05-22 19:52:11 +08:00 committed by Fu Siyuan
parent aff463c825
commit df642d70e3
1 changed files with 12 additions and 3 deletions

View File

@ -523,6 +523,7 @@ HttpUrlGetHostName (
&ResultLength
);
if (EFI_ERROR (Status)) {
FreePool (Name);
return Status;
}
@ -582,6 +583,7 @@ HttpUrlGetIp4 (
&ResultLength
);
if (EFI_ERROR (Status)) {
FreePool (Ip4String);
return Status;
}
@ -657,6 +659,7 @@ HttpUrlGetIp6 (
&ResultLength
);
if (EFI_ERROR (Status)) {
FreePool (Ip6String);
return Status;
}
@ -722,14 +725,15 @@ HttpUrlGetPort (
&ResultLength
);
if (EFI_ERROR (Status)) {
return Status;
goto ON_EXIT;
}
PortString[ResultLength] = '\0';
while (Index < ResultLength) {
if (!NET_IS_DIGIT (PortString[Index])) {
return EFI_INVALID_PARAMETER;
Status = EFI_INVALID_PARAMETER;
goto ON_EXIT;
}
Index ++;
}
@ -737,10 +741,14 @@ HttpUrlGetPort (
Status = AsciiStrDecimalToUintnS (Url + Parser->FieldData[HTTP_URI_FIELD_PORT].Offset, (CHAR8 **) NULL, &Data);
if (Data > HTTP_URI_PORT_MAX_NUM) {
return EFI_INVALID_PARAMETER;
Status = EFI_INVALID_PARAMETER;
goto ON_EXIT;
}
*Port = (UINT16) Data;
ON_EXIT:
FreePool (PortString);
return Status;
}
@ -795,6 +803,7 @@ HttpUrlGetPath (
&ResultLength
);
if (EFI_ERROR (Status)) {
FreePool (PathStr);
return Status;
}