audk/NetworkPkg
Mike Beaton 73dbb68006 NetworkPkg/HttpBootDxe: Correctly uninstall HttpBootCallbackProtocol
The existing HttpBootUninstallCallback was passing the wrong handle (the
PrivateData root controller handle, not the correct child IPv4 or IPv6
NIC controller handle; cf HttpBootInstallCallback for matching logic) and
was also passing the address of a pointer to the interface to be removed
rather than the pointer itself, so always failed with EFI_NOT_FOUND.

This resulted in the prior behaviour that if multiple HTTP boot attempts
were made, on the second and subsequent attempts the instance of this
protocol installed by the first attempt would be re-used. As long as only
one driver using the protocol is installed, this ends up producing the
same results as if the protocol had been uninstalled then reinstalled
correctly.

After this commit, the protocol is installed at the start of an HTTP boot
attempt and uninstalled it at the end of it (assuming nothing else has
accessed the protocol in a way which blocks the uninstall).

It might seem attractive to add an ASSERT to confirm when debugging
that the uninstall succeeds as expected, but this is recommended against
because uninstallation of protocol interfaces is allowed to fail under
the UEFI model:
https://edk2.groups.io/g/devel/message/117469.
An ASSERT could therefore arise from a sequence of events which is
perfectly valid - or at least is out of the control of this driver.

Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
2024-09-15 21:18:08 +00:00
..
Application/VConfig NetworkPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArpDxe NetworkPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Dhcp4Dxe NetworkPkg: SECURITY PATCH CVE-2023-45237 2024-05-24 15:48:52 +00:00
Dhcp6Dxe NetworkPkg: SECURITY PATCH CVE-2023-45237 2024-05-24 15:48:52 +00:00
DnsDxe NetworkPkg: SECURITY PATCH CVE-2023-45237 2024-05-24 15:48:52 +00:00
DpcDxe NetworkPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
HttpBootDxe NetworkPkg/HttpBootDxe: Correctly uninstall HttpBootCallbackProtocol 2024-09-15 21:18:08 +00:00
HttpDxe NetworkPkg/HttpDxe: Track HttpInstance URL buffer length. 2024-07-11 21:42:32 +00:00
HttpUtilitiesDxe NetworkPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
IScsiDxe NetworkPkg: SECURITY PATCH CVE-2023-45237 2024-05-24 15:48:52 +00:00
Include NetworkPkg: DxeHttpLib: Use HTTP error 429 2024-09-02 21:17:25 +00:00
Ip4Dxe NetworkPkg: SECURITY PATCH CVE-2023-45237 2024-05-24 15:48:52 +00:00
Ip6Dxe NetworkPkg: SECURITY PATCH CVE-2023-45237 2024-05-24 15:48:52 +00:00
Library MdePkg: Move PcdEnforceSecureRngAlgorithms from NetworkPkg 2024-09-13 14:34:21 +00:00
MnpDxe NetworkPkg/MnpDxe: Convert TX buffer allocation messages to DEBUG_VERBOSE 2024-09-11 19:32:39 +00:00
Mtftp4Dxe NetworkPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Mtftp6Dxe NetworkPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
SnpDxe NetworkPkg/SnpDxe: return error for unsupported parameter 2024-09-02 22:17:12 +00:00
TcpDxe NetworkPkg TcpDxe: Fixed system stuck on PXE boot flow in iPXE environment 2024-05-30 21:06:38 +00:00
Test NetworkPkg: Add StackCheckLib 2024-09-13 03:58:46 +00:00
TlsAuthConfigDxe NetworkPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
TlsDxe NetworkPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Udp4Dxe NetworkPkg: SECURITY PATCH CVE-2023-45237 2024-05-24 15:48:52 +00:00
Udp6Dxe NetworkPkg: SECURITY PATCH CVE-2023-45237 2024-05-24 15:48:52 +00:00
UefiPxeBcDxe NetworkPkg: PxeBcDhcp6GoogleTest: Fix Stack Smashing Unit Test 2024-09-13 03:58:46 +00:00
VlanConfigDxe NetworkPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
WifiConnectionManagerDxe NetworkPkg/WifiConnectionManagerDxe: Fix Connection Manager HII errors 2024-09-03 06:24:43 +00:00
Network.dsc.inc NetworkPkg: Add LoongArch64 architecture. 2022-10-14 02:16:33 +00:00
Network.fdf.inc
NetworkBuildOptions.dsc.inc NetworkPkg: Remove RVCT support 2022-05-13 14:58:54 +00:00
NetworkComponents.dsc.inc
NetworkDefines.dsc.inc
NetworkLibs.dsc.inc
NetworkPcds.dsc.inc NetworkPkg: Fix unable to build OVMF with -D NETWORK_ENABLE=0 2024-09-12 21:34:33 +00:00
NetworkPkg.ci.yaml NetworkPkg/NetworkPkg.ci.yaml: Add PrEval CI config 2024-09-02 23:20:35 +00:00
NetworkPkg.dec MdePkg: Move PcdEnforceSecureRngAlgorithms from NetworkPkg 2024-09-13 14:34:21 +00:00
NetworkPkg.dsc NetworkPkg: Add StackCheckLib 2024-09-13 03:58:46 +00:00
NetworkPkg.uni NetworkPkg: Add PCDs for HTTP DNS RetryCount and RetryInterval 2022-04-11 15:12:46 +00:00
NetworkPkgExtra.uni
SecurityFixes.yaml NetworkPkg TcpDxe: SECURITY PATCH CVE-2023-45236 2024-05-24 15:48:52 +00:00