summaryrefslogtreecommitdiff
path: root/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmm.h
diff options
context:
space:
mode:
authorMichael Kinney <michael.d.kinney@intel.com>2016-10-04 10:55:24 -0700
committerMichael Kinney <michael.d.kinney@intel.com>2016-10-07 14:56:37 -0700
commit5f82e02a4b40f25462f0d592e85071bdeb80a2bd (patch)
tree3c27a70efee02b08b6948706e2e865124b17df69 /QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmm.h
parent29f169d17a0f09cd1e05c984da5965e08f2b696e (diff)
downloadedk2-platforms-5f82e02a4b40f25462f0d592e85071bdeb80a2bd.tar.xz
QuarkSocPkg/QncSmmDispatcher: Fix use after free issue
Update Quark North Cluster SMM dispatcher logic to handle case where an SMI handler unregisters itself. https://bugzilla.tianocore.org/show_bug.cgi?id=51 This issue was reproduced using the unit test at: https://github.com/mdkinney/edk2/tree/Bug51/Reproduce An ASSERT() is generated the 4th time the periodic SMI handler is triggered when the periodic SMI handler unregisters itself. After applying this patch, the DEBUG() message from the periodic SMI handler in this unit test is generated 4 times, the periodic SMI handler is unregistered, and the UEFI Shell works as expected. Cc: Kelly Steele <kelly.steele@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Kelly Steele <kelly.steele@intel.com>
Diffstat (limited to 'QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmm.h')
-rw-r--r--QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmm.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmm.h b/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmm.h
index 797be16f79..ccf9dae1c5 100644
--- a/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmm.h
+++ b/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmm.h
@@ -387,6 +387,8 @@ struct _DATABASE_RECORD {
UINT32 Signature;
LIST_ENTRY Link;
+ BOOLEAN Processed;
+
//
// Status and Enable bit description
//