NetworkPkg: Add more parameter or return status check in UDP6 driver

In UDP6Dxe, there are several places that may be enhanced
to check input parameters and returned status. This patch
is to fix these issues.

Cc: Ye Ting <ting.ye@intel.com>
Cc: Jiaxin Wu <jiaxin.wu@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wang Fan <fan.wang@intel.com>
Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
This commit is contained in:
Wang Fan
2018-01-03 18:11:04 +08:00
committed by Fu Siyuan
parent 0f33366483
commit ceec363801
3 changed files with 45 additions and 22 deletions

View File

@@ -290,18 +290,15 @@ Udp6DriverBindingStop (
NULL
);
} else if (IsListEmpty (&Udp6Service->ChildrenList)) {
gBS->UninstallMultipleProtocolInterfaces (
NicHandle,
&gEfiUdp6ServiceBindingProtocolGuid,
&Udp6Service->ServiceBinding,
NULL
);
Status = gBS->UninstallMultipleProtocolInterfaces (
NicHandle,
&gEfiUdp6ServiceBindingProtocolGuid,
&Udp6Service->ServiceBinding,
NULL
);
Udp6CleanService (Udp6Service);
FreePool (Udp6Service);
Status = EFI_SUCCESS;
}
return Status;
@@ -510,21 +507,30 @@ Udp6ServiceBindingDestroyChild (
//
// Close the Ip6 protocol on the default IpIo.
//
gBS->CloseProtocol (
Udp6Service->IpIo->ChildHandle,
&gEfiIp6ProtocolGuid,
gUdp6DriverBinding.DriverBindingHandle,
Instance->ChildHandle
);
Status = gBS->CloseProtocol (
Udp6Service->IpIo->ChildHandle,
&gEfiIp6ProtocolGuid,
gUdp6DriverBinding.DriverBindingHandle,
Instance->ChildHandle
);
if (EFI_ERROR (Status)) {
Instance->InDestroy = FALSE;
return Status;
}
//
// Close the Ip6 protocol on this instance's IpInfo.
//
gBS->CloseProtocol (
Instance->IpInfo->ChildHandle,
&gEfiIp6ProtocolGuid,
gUdp6DriverBinding.DriverBindingHandle,
Instance->ChildHandle
);
Status = gBS->CloseProtocol (
Instance->IpInfo->ChildHandle,
&gEfiIp6ProtocolGuid,
gUdp6DriverBinding.DriverBindingHandle,
Instance->ChildHandle
);
if (EFI_ERROR (Status)) {
Instance->InDestroy = FALSE;
return Status;
}
//
// Uninstall the Udp6Protocol previously installed on the ChildHandle.