From 5646819ffb2d9cb87785e9e409f8d928a9f3a04d Mon Sep 17 00:00:00 2001 From: Fu Siyuan Date: Mon, 23 May 2016 11:02:01 +0800 Subject: NetworkPkg: update code for NULL pointer check. This patch updates the HTTP driver to initialize the local variable for NULL and check the NULL pointer before dereference it. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Fu Siyuan Reviewed-by: Ye Ting Reviewed-by: Wu Jiaxin --- NetworkPkg/HttpDxe/HttpImpl.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'NetworkPkg/HttpDxe') diff --git a/NetworkPkg/HttpDxe/HttpImpl.c b/NetworkPkg/HttpDxe/HttpImpl.c index f4ae28aec9..7ee661316e 100644 --- a/NetworkPkg/HttpDxe/HttpImpl.c +++ b/NetworkPkg/HttpDxe/HttpImpl.c @@ -253,6 +253,7 @@ EfiHttpRequest ( // Initializations // Url = NULL; + UrlParser = NULL; HostName = NULL; RequestMsg = NULL; HostNameStr = NULL; @@ -1063,7 +1064,7 @@ HttpResponseWorker ( if (SizeofHeaders != 0) { HeaderTmp = AllocateZeroPool (SizeofHeaders); if (HeaderTmp == NULL) { - goto Error; + goto Error2; } CopyMem (HeaderTmp, Tmp, SizeofHeaders); @@ -1075,7 +1076,7 @@ HttpResponseWorker ( // if (mHttpUtilities == NULL) { Status = EFI_NOT_READY; - goto Error; + goto Error2; } // @@ -1089,7 +1090,7 @@ HttpResponseWorker ( &HttpMsg->HeaderCount ); if (EFI_ERROR (Status)) { - goto Error; + goto Error2; } FreePool (HttpHeaders); @@ -1214,7 +1215,7 @@ HttpResponseWorker ( &HttpInstance->TimeoutEvent ); if (EFI_ERROR (Status)) { - goto Error; + goto Error2; } } @@ -1223,7 +1224,7 @@ HttpResponseWorker ( // Status = gBS->SetTimer (HttpInstance->TimeoutEvent, TimerRelative, HTTP_RESPONSE_TIMEOUT * TICKS_PER_SECOND); if (EFI_ERROR (Status)) { - goto Error; + goto Error2; } // @@ -1234,7 +1235,7 @@ HttpResponseWorker ( gBS->SetTimer (HttpInstance->TimeoutEvent, TimerCancel, 0); if (EFI_ERROR (Status)) { - goto Error; + goto Error2; } FreePool (Wrap); @@ -1258,7 +1259,9 @@ Exit: return Status; Error2: - NetMapInsertHead (&HttpInstance->TxTokens, ValueInItem->HttpToken, ValueInItem); + if (ValueInItem != NULL) { + NetMapInsertHead (&HttpInstance->TxTokens, ValueInItem->HttpToken, ValueInItem); + } Error: HttpTcpTokenCleanup (Wrap); -- cgit v1.2.3