From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: redhat.com, ip: 209.132.183.28, mailfrom: lersek@redhat.com) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by groups.io with SMTP; Thu, 26 Sep 2019 05:14:29 -0700 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9F3AE898109; Thu, 26 Sep 2019 12:14:28 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-49.rdu2.redhat.com [10.10.120.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id 90CC2194B6; Thu, 26 Sep 2019 12:14:27 +0000 (UTC) Subject: Re: [edk2-devel] [PATCH 19/35] NetworkPkg: fix CloseProtocol & UninstallMultipleProtocolInterfaces calls From: "Laszlo Ersek" To: Jiaxin Wu , Siyuan Fu Cc: edk2-devel-groups-io Reply-To: devel@edk2.groups.io, lersek@redhat.com References: <20190917194935.24322-1-lersek@redhat.com> <20190917194935.24322-20-lersek@redhat.com> Message-ID: <08420669-838b-0dea-e8f4-7db45ca69ff7@redhat.com> Date: Thu, 26 Sep 2019 14:14:26 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20190917194935.24322-20-lersek@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.67]); Thu, 26 Sep 2019 12:14:28 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Jiaxin, Siyuan, can you please review this patch? Thanks Laszlo On 09/17/19 21:49, Laszlo Ersek wrote: > Both the "ControllerHandle" parameter of CloseProtocol() and the "Handle" > parameter of UninstallMultipleProtocolInterfaces() have type EFI_HANDLE, > not (EFI_HANDLE*). > > This patch fixes actual bugs. The issues have been dormant likely because > they are on error paths. (Or, in case of TlsAuthConfigDxe, because the > driver is unloaded likely very infrequently.) > > Cc: Jiaxin Wu > Cc: Siyuan Fu > Signed-off-by: Laszlo Ersek > --- > > Notes: > build-tested only > > NetworkPkg/DnsDxe/DnsDriver.c | 4 ++-- > NetworkPkg/IScsiDxe/IScsiConfig.c | 2 +- > NetworkPkg/Ip4Dxe/Ip4Driver.c | 2 +- > NetworkPkg/Ip6Dxe/Ip6Driver.c | 2 +- > NetworkPkg/Mtftp4Dxe/Mtftp4Driver.c | 2 +- > NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.c | 2 +- > 6 files changed, 7 insertions(+), 7 deletions(-) > > diff --git a/NetworkPkg/DnsDxe/DnsDriver.c b/NetworkPkg/DnsDxe/DnsDriver.c > index 94d072159a4d..ad007da8b7d6 100644 > --- a/NetworkPkg/DnsDxe/DnsDriver.c > +++ b/NetworkPkg/DnsDxe/DnsDriver.c > @@ -1145,7 +1145,7 @@ Dns4ServiceBindingCreateChild ( > DnsSb->ConnectUdp->UdpHandle, > &gEfiUdp4ProtocolGuid, > gDns4DriverBinding.DriverBindingHandle, > - ChildHandle > + *ChildHandle > ); > > gBS->UninstallMultipleProtocolInterfaces ( > @@ -1388,7 +1388,7 @@ Dns6ServiceBindingCreateChild ( > DnsSb->ConnectUdp->UdpHandle, > &gEfiUdp6ProtocolGuid, > gDns6DriverBinding.DriverBindingHandle, > - ChildHandle > + *ChildHandle > ); > > gBS->UninstallMultipleProtocolInterfaces ( > diff --git a/NetworkPkg/IScsiDxe/IScsiConfig.c b/NetworkPkg/IScsiDxe/IScsiConfig.c > index b876da7f5ccd..d773849fd3b0 100644 > --- a/NetworkPkg/IScsiDxe/IScsiConfig.c > +++ b/NetworkPkg/IScsiDxe/IScsiConfig.c > @@ -3852,7 +3852,7 @@ IScsiConfigFormInit ( > ); > if (CallbackInfo->RegisteredHandle == NULL) { > gBS->UninstallMultipleProtocolInterfaces ( > - &CallbackInfo->DriverHandle, > + CallbackInfo->DriverHandle, > &gEfiDevicePathProtocolGuid, > &mIScsiHiiVendorDevicePath, > &gEfiHiiConfigAccessProtocolGuid, > diff --git a/NetworkPkg/Ip4Dxe/Ip4Driver.c b/NetworkPkg/Ip4Dxe/Ip4Driver.c > index ebd4dec1dfe4..62be8b681a18 100644 > --- a/NetworkPkg/Ip4Dxe/Ip4Driver.c > +++ b/NetworkPkg/Ip4Dxe/Ip4Driver.c > @@ -891,7 +891,7 @@ Ip4ServiceBindingCreateChild ( > ); > if (EFI_ERROR (Status)) { > gBS->UninstallMultipleProtocolInterfaces ( > - ChildHandle, > + *ChildHandle, > &gEfiIp4ProtocolGuid, > &IpInstance->Ip4Proto, > NULL > diff --git a/NetworkPkg/Ip6Dxe/Ip6Driver.c b/NetworkPkg/Ip6Dxe/Ip6Driver.c > index 7dc9e45af7b6..63d8428dbced 100644 > --- a/NetworkPkg/Ip6Dxe/Ip6Driver.c > +++ b/NetworkPkg/Ip6Dxe/Ip6Driver.c > @@ -888,7 +888,7 @@ Ip6ServiceBindingCreateChild ( > ); > if (EFI_ERROR (Status)) { > gBS->UninstallMultipleProtocolInterfaces ( > - ChildHandle, > + *ChildHandle, > &gEfiIp6ProtocolGuid, > &IpInstance->Ip6Proto, > NULL > diff --git a/NetworkPkg/Mtftp4Dxe/Mtftp4Driver.c b/NetworkPkg/Mtftp4Dxe/Mtftp4Driver.c > index ae9e65544a86..06c4e202d3ef 100644 > --- a/NetworkPkg/Mtftp4Dxe/Mtftp4Driver.c > +++ b/NetworkPkg/Mtftp4Dxe/Mtftp4Driver.c > @@ -592,7 +592,7 @@ Mtftp4ServiceBindingCreateChild ( > MtftpSb->ConnectUdp->UdpHandle, > &gEfiUdp4ProtocolGuid, > gMtftp4DriverBinding.DriverBindingHandle, > - ChildHandle > + *ChildHandle > ); > goto ON_ERROR; > } > diff --git a/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.c b/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.c > index 18ee763002b4..c0870ab9979c 100644 > --- a/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.c > +++ b/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.c > @@ -39,7 +39,7 @@ TlsAuthConfigDxeUnload ( > ASSERT (PrivateData->Signature == TLS_AUTH_CONFIG_PRIVATE_DATA_SIGNATURE); > > gBS->UninstallMultipleProtocolInterfaces ( > - &ImageHandle, > + ImageHandle, > &gEfiCallerIdGuid, > PrivateData, > NULL >