audk/MdeModulePkg/Core/PiSmmCore
Ruiyu Ni 8a641d2b73 MdeModulePkg/SmmCore: Fix hang due to already-freed memory deference
SmiHandlerUnRegister() validates the DispatchHandle by checking
whether the first 32bit matches to a certain signature
(SMI_HANDLER_SIGNATURE).
But if a caller calls *UnRegister() twice and the memory freed by
first call still contains the signature, the second call may hang.

The patch fixes this issue by locating the DispatchHandle
in all SMI handlers, instead of checking the signature.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2018-02-03 14:48:58 +08:00
..
Dependency.c MdeModulePkg/Core: Fix typos in comments 2016-10-27 09:11:17 +08:00
Dispatcher.c MdeModulePkg: Update PiSmmCore to set correct ImageAddress into LoadedImage 2017-04-25 09:48:22 +08:00
Handle.c MdeModulePkg: Enhance the debug message for InstallProtocolInterface 2017-06-23 14:46:41 +08:00
HeapGuard.c MdeModulePkg/Core: Fix heap guard issues 2017-12-26 18:07:27 +08:00
HeapGuard.h MdeModulePkg/PiSmmCore: Fix issues in Heap Guard 2017-12-13 11:42:57 +08:00
InstallConfigurationTable.c MdeModulePkg: Fix use-after-free error in InstallConfigurationTable() 2017-06-20 16:55:10 +08:00
Locate.c MdeModulePkg: Return invalid param in LocateProtocol for Protocol==NULL 2017-06-21 21:37:34 +08:00
MemoryAttributesTable.c MdeModulePkg/Core: Fix incorrect memory map generated in a rare case 2017-12-19 15:19:46 +08:00
Notify.c MdeModulePkg/SmmCore: SMM register protocol notify function clarify 2015-05-07 02:29:52 +00:00
Page.c MdeModulePkg PiSmmCore: Set ForwardLink to NULL in RemoveOldEntry() 2018-01-31 17:23:36 +08:00
PiSmmCore.c MdeModulePkg PiSmmCore: Use SxDispatch in SmmEndOfDxeHandler() 2017-12-15 10:38:11 +08:00
PiSmmCore.h MdeModulePkg PiSmmCore: Only install EndOfS3Resume during S3 resume 2017-12-12 18:30:06 +08:00
PiSmmCore.inf MdeModulePkg PiSmmCore: Only install EndOfS3Resume during S3 resume 2017-12-12 18:30:06 +08:00
PiSmmCore.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
PiSmmCoreExtra.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
PiSmmCorePrivateData.h MdeModulePkg PiSmmCore: Remove a hidden assumption of SMRAM reservation 2015-07-26 07:38:12 +00:00
PiSmmIpl.c MdeModulePkg/PiSmmCore: remove NX attr for SMM RAM 2018-01-18 17:03:25 +08:00
PiSmmIpl.inf MdeModulePkg/PiSmmIpl: Check order of EndOfDxe and DxeSmmReadyToLock 2016-05-30 09:41:02 +08:00
PiSmmIpl.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
PiSmmIplExtra.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
Pool.c MdeModulePkg: Fix unix style of EOL 2017-11-21 20:24:37 +08:00
Smi.c MdeModulePkg/SmmCore: Fix hang due to already-freed memory deference 2018-02-03 14:48:58 +08:00
SmiHandlerProfile.c MdeModulePkg SmiHandlerProfile: Use fixed data type in data structure 2017-05-24 15:27:34 +08:00
SmramProfileRecord.c MdeModulePkg PiSmmCore: Remove unreferenced symbol for SMRAM profile 2017-03-15 16:47:10 +08:00