Theis patch just wants to remove the warning message in GCC5 release build just like attachment. -----Original Message----- From: Yao, Jiewen Sent: Thursday, April 27, 2023 4:21 PM To: Lu, Pen-ChunX ; devel@edk2.groups.io Cc: Wang, Jian J Subject: RE: [PATCH] Release build in GCC5 has warning message Wreturn-local-addr in HashPeiLib Could you please show me how this function returns *local variable*? return BuildGuidDataHob (&mHashLibPeiRouterGuid, &LocalHashInterfaceHob, sizeof (LocalHashInterfaceHob)); I don't understand the analysis. > -----Original Message----- > From: Lu, Pen-ChunX > Sent: Thursday, April 27, 2023 3:58 PM > To: Yao, Jiewen ; devel@edk2.groups.io > Cc: Wang, Jian J > Subject: RE: [PATCH] Release build in GCC5 has warning message > Wreturn- local-addr in HashPeiLib > > Hi, > It means the code might be possible return local variable address > when we used the function. > So I allocate a resource to local variable to avoid this. > > Best Regards, > Joe Lu > > -----Original Message----- > From: Yao, Jiewen > Sent: Thursday, April 27, 2023 3:51 PM > To: Lu, Pen-ChunX ; devel@edk2.groups.io > Cc: Wang, Jian J > Subject: RE: [PATCH] Release build in GCC5 has warning message > Wreturn- local-addr in HashPeiLib > > Hi > I am not sure if I can understand the patch. > > Would you please clarify what the problem is in the original code? > > > -----Original Message----- > > From: Lu, Pen-ChunX > > Sent: Thursday, April 27, 2023 2:59 PM > > To: devel@edk2.groups.io > > Cc: Lu, Pen-ChunX ; Yao, Jiewen > > ; Wang, Jian J > > Subject: [PATCH] Release build in GCC5 has warning message > > Wreturn-local- addr in HashPeiLib > > > > CC: Jiewen Yao > > CC: Jian J Wang > > Signed-off-by: JoeX Lu > > --- > > .../HashLibBaseCryptoRouterPei.c | 17 +++++++++++++---- > > 1 file changed, 13 insertions(+), 4 deletions(-) > > > > diff --git > > > a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterP > > ei.c > > > b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterP > > ei.c > > index eeb424b6c3..bf7a5fc65c 100644 > > --- > > > a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterP > > ei.c > > +++ > > > b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterP > > ei.c > > @@ -84,11 +84,20 @@ InternalCreateHashInterfaceHob ( > > EFI_GUID *Identifier > > ) > > { > > - HASH_INTERFACE_HOB LocalHashInterfaceHob; > > + HASH_INTERFACE_HOB *LocalHashInterfaceHob; > HASH_INTERFACE_HOB > > + *HobBuffer; > > > > - ZeroMem (&LocalHashInterfaceHob, sizeof (LocalHashInterfaceHob)); > > - CopyGuid (&LocalHashInterfaceHob.Identifier, Identifier); > > - return BuildGuidDataHob (&mHashLibPeiRouterGuid, > > &LocalHashInterfaceHob, sizeof (LocalHashInterfaceHob)); > > + HobBuffer = NULL; > > + LocalHashInterfaceHob = AllocateZeroPool (sizeof > > (HASH_INTERFACE_HOB)); > > + if (LocalHashInterfaceHob == NULL) { > > + return NULL; > > + } > > + CopyGuid (&LocalHashInterfaceHob->Identifier, Identifier); > > + HobBuffer = (HASH_INTERFACE_HOB*) BuildGuidDataHob > > (&mHashLibPeiRouterGuid, LocalHashInterfaceHob, sizeof > > (LocalHashInterfaceHob)); > > + if (LocalHashInterfaceHob != NULL) { > > + FreePool (LocalHashInterfaceHob); } return HobBuffer; > > } > > > > /** > > -- > > 2.31.1.windows.1