audk/NetworkPkg
Gary Lin 6340f2b858 NetworkPkg/HttpDxe: Don't free Wrap in HttpTcpReceiveNotifyDpc
The HTTP Token Wrap is created in EfiHttpResponse() and then passed
to the deferred Receive event callback, HttpTcpReceiveNotifyDpc.
HttpTcpReceiveHeader and HttpTcpReceiveBody use a Tcp polling loop to
monitor the socket status and trigger the Receive event when a new
packet arrives. The Receive event brings up HttpTcpReceiveNotifyDpc
to process the HTTP message and the function will set Wrap->TcpWrap.IsRxDone
to TRUE to break the Tcp polling loop.

However, HttpTcpReceiveNotifyDpc mistakenly freed Wrap, so the Tcp
polling loop was actually checking a dead variable, and this led the
system into an unstable status.

Given the fact that the HTTP Token Wrap will be freed in EfiHttpResponse
or HttpResponseWorker, this commit removes every "FreePool (Wrap)" in
HttpTcpReceiveNotifyDpc.

v2:
* Free Wrap after HttpTcpReceiveBody returns normally.

Cc: "Wu, Jiaxin" <jiaxin.wu@intel.com>
Cc: "Siyuan Fu" <siyuan.fu@intel.com>
Cc: "El-Haj-Mahmoud, Samer" <samer.el-haj-mahmoud@hpe.com>
Cc: "Laszlo Ersek" <lersek@redhat.com>
Cc: "Hegde, Nagaraj P" <nagaraj-p.hegde@hpe.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Samer El-Haj-Mahmoud <elhaj@hpe.com>
Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Siyuan Fu <siyuan.fu@intel.com>
2016-05-20 12:40:19 +08:00
..
Application NetworkPkg: Refine the code of shell app under networkPkg. 2016-03-11 11:55:06 +08:00
Dhcp6Dxe NetworkPkg: Check received packet size before use it. 2016-04-01 13:30:23 +08:00
DnsDxe NetworkPkg: Check received packet size before use it. 2016-04-01 13:30:23 +08:00
HttpBootDxe NetworkPkg: Make HttpBootGetBootFile return EFI_BUFFER_TOO_SMALL 2016-05-13 10:09:21 +08:00
HttpDxe NetworkPkg/HttpDxe: Don't free Wrap in HttpTcpReceiveNotifyDpc 2016-05-20 12:40:19 +08:00
HttpUtilitiesDxe NetworkPkg:HttpDxe:Consume DxeHttpLib API changes 2016-04-27 10:43:18 +08:00
IScsiDxe NetworkPkg: Bug fix of iSCSI to support MPIO 2016-05-12 09:35:30 +08:00
Include/Guid NetworkPkg: Add URI configuration form to HTTP boot driver. 2016-03-07 09:12:14 +08:00
Ip6Dxe NetworkPkg: Fix issue in Ip6Dxe SetData 2016-04-14 14:55:09 +08:00
IpSecDxe NetworkPkg: IpSecDxe: remove set but unused variables 2016-03-25 10:52:31 +01:00
Mtftp6Dxe NetworkPkg:Fix Network memory leak when calling GetModeData interface 2016-01-28 02:32:43 +00:00
TcpDxe NetworkPkg/TcpDxe: Remove the status check of SockProcessRcvToken 2016-05-20 12:39:52 +08:00
Udp6Dxe NetworkPkg: Check received packet size before use it. 2016-04-01 13:30:23 +08:00
UefiPxeBcDxe NetworkPkg: Ignore BootFileName if it is overloaded. 2016-05-06 11:42:24 +08:00
Contributions.txt
License.txt
NetworkPkg.dec NetworkPkg: Add URI configuration form to HTTP boot driver. 2016-03-07 09:12:14 +08:00
NetworkPkg.dsc NetworkPkg: Use UefiBootManagerLib API to create load option. 2016-05-05 08:45:35 +08:00
NetworkPkg.uni NetworkPkg: Update NetworkPkg.uni to UTF-8 file format 2015-12-23 07:55:27 +00:00
NetworkPkgExtra.uni NetworkPkg: Convert all .uni files to utf-8 2015-12-15 04:56:57 +00:00