]> git.proxmox.com Git - mirror_edk2.git/commit - MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c
MdeModulePkg/Core: fill logic hole in MemoryProtectionCpuArchProtocolNotify
authorJian J Wang <jian.j.wang@intel.com>
Sat, 3 Nov 2018 05:58:28 +0000 (13:58 +0800)
committerJian J Wang <jian.j.wang@intel.com>
Wed, 7 Nov 2018 15:08:26 +0000 (23:08 +0800)
commit8a7ff892ca067ff75ea41a18f703ef558956c669
tree86182384ab2a8edc9d6f02cd0cad426e16a3e53b
parentd98fc9adfb6f4d0da5556c4a3592f01fb8731b24
MdeModulePkg/Core: fill logic hole in MemoryProtectionCpuArchProtocolNotify

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;

There's another memory leak after calling gBS->LocateHandleBuffer() in
the same function:

  Status = gBS->LocateHandleBuffer (
                  ByProtocol,
                  &gEfiLoadedImageProtocolGuid,
                  NULL,
                  &NoHandles,
                  &HandleBuffer
                  );

HandleBuffer is allocated in above call but never freed. This patch
will also add code to free it.

Cc: Star Zeng <star.zeng@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c