diff --git a/NetworkPkg/HttpDxe/HttpProto.c b/NetworkPkg/HttpDxe/HttpProto.c index 85f8401540..165e95cc50 100644 --- a/NetworkPkg/HttpDxe/HttpProto.c +++ b/NetworkPkg/HttpDxe/HttpProto.c @@ -150,6 +150,9 @@ HttpTcpReceiveNotifyDpc ( gBS->CloseEvent (Wrap->TcpWrap.Rx6Token.CompletionToken.Event); if (EFI_ERROR (Wrap->TcpWrap.Rx6Token.CompletionToken.Status)) { + Wrap->HttpToken->Status = Wrap->TcpWrap.Rx6Token.CompletionToken.Status; + gBS->SignalEvent (Wrap->HttpToken->Event); + FreePool (Wrap); return ; } @@ -157,6 +160,9 @@ HttpTcpReceiveNotifyDpc ( gBS->CloseEvent (Wrap->TcpWrap.Rx4Token.CompletionToken.Event); if (EFI_ERROR (Wrap->TcpWrap.Rx4Token.CompletionToken.Status)) { + Wrap->HttpToken->Status = Wrap->TcpWrap.Rx4Token.CompletionToken.Status; + gBS->SignalEvent (Wrap->HttpToken->Event); + FreePool (Wrap); return ; } }