On Sat, Nov 03, 2018 at 02:42:20PM +0800, Jian J Wang wrote: > At the end of of MemoryProtectionCpuArchProtocolNotify there's cleanup > code to free resource. But at line 978, 994, 1005 the function returns > directly. This patch use "goto" to replace "return" to make sure the > resource is freed before exit. > > 1029: CoreCloseEvent (Event); > 1030: return; > > Cc: Star Zeng <star.z...@intel.com> > Cc: Jiewen Yao <jiewen....@intel.com> > Cc: Ruiyu Ni <ruiyu...@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Jian J Wang <jian.j.w...@intel.com> > --- > MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c | 42 > +++++++++++++-------------- > 1 file changed, 21 insertions(+), 21 deletions(-) > > diff --git a/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c > b/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c > index 6298b67db1..30e5c5153c 100644 > --- a/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c > +++ b/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c > @@ -975,7 +975,7 @@ MemoryProtectionCpuArchProtocolNotify ( > DEBUG ((DEBUG_INFO, "MemoryProtectionCpuArchProtocolNotify:\n")); > Status = CoreLocateProtocol (&gEfiCpuArchProtocolGuid, NULL, (VOID > **)&gCpu); > if (EFI_ERROR (Status)) { > - return; > + goto Done; > } > > // > @@ -991,7 +991,7 @@ MemoryProtectionCpuArchProtocolNotify ( > HeapGuardCpuArchProtocolNotify (); > > if (mImageProtectionPolicy == 0) { > - return; > + goto Done; > } > > Status = gBS->LocateHandleBuffer ( > @@ -1002,7 +1002,7 @@ MemoryProtectionCpuArchProtocolNotify ( > &HandleBuffer > ); > if (EFI_ERROR (Status) && (NoHandles == 0)) { > - return ; > + goto Done; > } > > for (Index = 0; Index < NoHandles; Index++) { > @@ -1026,8 +1026,8 @@ MemoryProtectionCpuArchProtocolNotify ( > ProtectUefiImage (LoadedImage, LoadedImageDevicePath); > } > > +Done: > CoreCloseEvent (Event); > - return; > } > > /**
I have no comments on the bits above, but everything below here looks like it's only ruining the indentation without any functional changes at all. / Leif > @@ -1136,24 +1136,24 @@ CoreInitializeMemoryProtection ( > GetPermissionAttributeForMemoryType (EfiConventionalMemory)); > > if (mImageProtectionPolicy != 0 || PcdGet64 > (PcdDxeNxMemoryProtectionPolicy) != 0) { > - Status = CoreCreateEvent ( > - EVT_NOTIFY_SIGNAL, > - TPL_CALLBACK, > - MemoryProtectionCpuArchProtocolNotify, > - NULL, > - &Event > - ); > - ASSERT_EFI_ERROR(Status); > + Status = CoreCreateEvent ( > + EVT_NOTIFY_SIGNAL, > + TPL_CALLBACK, > + MemoryProtectionCpuArchProtocolNotify, > + NULL, > + &Event > + ); > + ASSERT_EFI_ERROR(Status); > > - // > - // Register for protocol notifactions on this event > - // > - Status = CoreRegisterProtocolNotify ( > - &gEfiCpuArchProtocolGuid, > - Event, > - &Registration > - ); > - ASSERT_EFI_ERROR(Status); > + // > + // Register for protocol notifactions on this event > + // > + Status = CoreRegisterProtocolNotify ( > + &gEfiCpuArchProtocolGuid, > + Event, > + &Registration > + ); > + ASSERT_EFI_ERROR(Status); > } > > // > -- > 2.16.2.windows.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