Agree. Patch v2 is ready for review. Thanks. Jiaxin
> -----Original Message----- > From: Ye, Ting > Sent: Friday, June 17, 2016 5:04 PM > To: Wu, Jiaxin <jiaxin...@intel.com>; edk2-devel@lists.01.org > Cc: Zhang, Lubo <lubo.zh...@intel.com>; Fu, Siyuan <siyuan...@intel.com> > Subject: RE: [edk2] [Patch] NetworkPkg: Replace ASSERT with error handling > in DnsDxe > > Jiaxin, > > Is it possible to use goto to handle the error cases instead of duplicating > the > logic? > > Thanks, > Ting > > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of > Jiaxin Wu > Sent: Friday, June 17, 2016 2:46 PM > To: edk2-devel@lists.01.org > Cc: Ye, Ting <ting...@intel.com>; Zhang, Lubo <lubo.zh...@intel.com>; Fu, > Siyuan <siyuan...@intel.com> > Subject: [edk2] [Patch] NetworkPkg: Replace ASSERT with error handling in > DnsDxe > > This patch is used to replace ASSERT with error handling in DnsDxe driver. > > Cc: Ye Ting <ting...@intel.com> > Cc: Fu Siyuan <siyuan...@intel.com> > Cc: Zhang Lubo <lubo.zh...@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jiaxin Wu <jiaxin...@intel.com> > --- > NetworkPkg/DnsDxe/DnsProtocol.c | 34 > ++++++++++++++++++++++++++++++---- > 1 file changed, 30 insertions(+), 4 deletions(-) > > diff --git a/NetworkPkg/DnsDxe/DnsProtocol.c > b/NetworkPkg/DnsDxe/DnsProtocol.c index e9101d6..1102fab 100644 > --- a/NetworkPkg/DnsDxe/DnsProtocol.c > +++ b/NetworkPkg/DnsDxe/DnsProtocol.c > @@ -110,11 +110,17 @@ Dns4GetModeData ( > NET_LIST_FOR_EACH_SAFE (Entry, Next, &mDriverData->Dns4ServerList) { > Index++; > } > DnsModeData->DnsServerCount = (UINT32) Index; > ServerList = AllocatePool (sizeof (EFI_IPv4_ADDRESS) * DnsModeData- > >DnsServerCount); > - ASSERT (ServerList != NULL); > + if (ServerList == NULL) { > + Status = EFI_OUT_OF_RESOURCES; > + Dns4CleanConfigure (&DnsModeData->DnsConfigData); > + gBS->RestoreTPL (OldTpl); > + return Status; > + } > + > Index = 0; > NET_LIST_FOR_EACH_SAFE (Entry, Next, &mDriverData->Dns4ServerList) { > ServerItem = NET_LIST_USER_STRUCT (Entry, DNS4_SERVER_IP, > AllServerLink); > CopyMem (ServerList + Index, &ServerItem->Dns4ServerIp, sizeof > (EFI_IPv4_ADDRESS)); > Index++; > @@ -128,11 +134,18 @@ Dns4GetModeData ( > NET_LIST_FOR_EACH_SAFE (Entry, Next, &mDriverData->Dns4CacheList) { > Index++; > } > DnsModeData->DnsCacheCount = (UINT32) Index; > CacheList = AllocatePool (sizeof (EFI_DNS4_CACHE_ENTRY) * > DnsModeData->DnsCacheCount); > - ASSERT (CacheList != NULL); > + if (CacheList == NULL) { > + Status = EFI_OUT_OF_RESOURCES; > + Dns4CleanConfigure (&DnsModeData->DnsConfigData); > + FreePool (ServerList); > + gBS->RestoreTPL (OldTpl); > + return Status; > + } > + > Index =0; > NET_LIST_FOR_EACH_SAFE (Entry, Next, &mDriverData->Dns4CacheList) { > CacheItem = NET_LIST_USER_STRUCT (Entry, DNS4_CACHE, AllCacheLink); > CopyMem (CacheList + Index, &CacheItem->DnsCache, sizeof > (EFI_DNS4_CACHE_ENTRY)); > Index++; > @@ -931,11 +944,17 @@ Dns6GetModeData ( > NET_LIST_FOR_EACH_SAFE (Entry, Next, &mDriverData->Dns6ServerList) { > Index++; > } > DnsModeData->DnsServerCount = (UINT32) Index; > ServerList = AllocatePool (sizeof(EFI_IPv6_ADDRESS) * DnsModeData- > >DnsServerCount); > - ASSERT (ServerList != NULL); > + if (ServerList == NULL) { > + Status = EFI_OUT_OF_RESOURCES; > + Dns6CleanConfigure (&DnsModeData->DnsConfigData); > + gBS->RestoreTPL (OldTpl); > + return Status; > + } > + > Index = 0; > NET_LIST_FOR_EACH_SAFE (Entry, Next, &mDriverData->Dns6ServerList) { > ServerItem = NET_LIST_USER_STRUCT (Entry, DNS6_SERVER_IP, > AllServerLink); > CopyMem (ServerList + Index, &ServerItem->Dns6ServerIp, sizeof > (EFI_IPv6_ADDRESS)); > Index++; > @@ -949,11 +968,18 @@ Dns6GetModeData ( > NET_LIST_FOR_EACH_SAFE (Entry, Next, &mDriverData->Dns6CacheList) { > Index++; > } > DnsModeData->DnsCacheCount = (UINT32) Index; > CacheList = AllocatePool (sizeof(EFI_DNS6_CACHE_ENTRY) * > DnsModeData->DnsCacheCount); > - ASSERT (CacheList != NULL); > + if (CacheList == NULL) { > + Status = EFI_OUT_OF_RESOURCES; > + Dns6CleanConfigure (&DnsModeData->DnsConfigData); > + FreePool (ServerList); > + gBS->RestoreTPL (OldTpl); > + return Status; > + } > + > Index =0; > NET_LIST_FOR_EACH_SAFE (Entry, Next, &mDriverData->Dns6CacheList) { > CacheItem = NET_LIST_USER_STRUCT (Entry, DNS6_CACHE, AllCacheLink); > CopyMem (CacheList + Index, &CacheItem->DnsCache, sizeof > (EFI_DNS6_CACHE_ENTRY)); > Index++; > -- > 1.9.5.msysgit.1 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel