From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: michael.d.kinney@intel.com) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by groups.io with SMTP; Fri, 28 Jun 2019 13:18:38 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Jun 2019 13:18:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,428,1557212400"; d="scan'208";a="156672164" Received: from unknown (HELO mdkinney-MOBL2.amr.corp.intel.com) ([10.241.98.74]) by orsmga008.jf.intel.com with ESMTP; 28 Jun 2019 13:18:38 -0700 From: "Michael D Kinney" To: devel@edk2.groups.io Cc: Jian J Wang , Hao A Wu , Ray Ni , Star Zeng , Jiewen Yao Subject: [Patch] MdeModulePkg/PiSmmCore: Use unique structure signatures Date: Fri, 28 Jun 2019 13:18:36 -0700 Message-Id: <20190628201836.788-1-michael.d.kinney@intel.com> X-Mailer: git-send-email 2.21.0.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit https://bugzilla.tianocore.org/show_bug.cgi?id=1948 Update the data structure signatures in the PiSmmCore to be unique. Some of the signatures are the same as those used by the DxeCore. For example, the memory pool head and tail structures use the same signature in the PiSmmCore and DxeCore. This means the use of the wrong FreePool API will not be noticed at the time FreePool is called and a failure can occur much later. By making the signatures unique, misuse of an API is caught at that time the API is called. Cc: Jian J Wang Cc: Hao A Wu Cc: Ray Ni Cc: Star Zeng Cc: Jiewen Yao Signed-off-by: Michael D Kinney --- MdeModulePkg/Core/PiSmmCore/PiSmmCore.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h index da01a1f07d..0908e7f4e9 100644 --- a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h +++ b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h @@ -2,7 +2,7 @@ The internal header file includes the common header files, defines internal structure and functions used by SmmCore module. - Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
+ Copyright (c) 2009 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -140,7 +140,7 @@ typedef struct { EFI_LOADED_IMAGE_PROTOCOL SmmLoadedImage; } EFI_SMM_DRIVER_ENTRY; -#define EFI_HANDLE_SIGNATURE SIGNATURE_32('h','n','d','l') +#define EFI_HANDLE_SIGNATURE SIGNATURE_32('s','h','d','l') /// /// IHANDLE - contains a list of protocol handles @@ -156,7 +156,7 @@ typedef struct { #define ASSERT_IS_HANDLE(a) ASSERT((a)->Signature == EFI_HANDLE_SIGNATURE) -#define PROTOCOL_ENTRY_SIGNATURE SIGNATURE_32('p','r','t','e') +#define PROTOCOL_ENTRY_SIGNATURE SIGNATURE_32('s','p','t','e') /// /// PROTOCOL_ENTRY - each different protocol has 1 entry in the protocol @@ -175,7 +175,7 @@ typedef struct { LIST_ENTRY Notify; } PROTOCOL_ENTRY; -#define PROTOCOL_INTERFACE_SIGNATURE SIGNATURE_32('p','i','f','c') +#define PROTOCOL_INTERFACE_SIGNATURE SIGNATURE_32('s','p','i','f') /// /// PROTOCOL_INTERFACE - each protocol installed on a handle is tracked @@ -195,7 +195,7 @@ typedef struct { VOID *Interface; } PROTOCOL_INTERFACE; -#define PROTOCOL_NOTIFY_SIGNATURE SIGNATURE_32('p','r','t','n') +#define PROTOCOL_NOTIFY_SIGNATURE SIGNATURE_32('s','p','t','n') /// /// PROTOCOL_NOTIFY - used for each register notification for a protocol @@ -1245,7 +1245,7 @@ extern LIST_ENTRY mSmmMemoryMap; // #define MAX_POOL_INDEX (MAX_POOL_SHIFT - MIN_POOL_SHIFT + 1) -#define POOL_HEAD_SIGNATURE SIGNATURE_32('p','h','d','0') +#define POOL_HEAD_SIGNATURE SIGNATURE_32('s','p','h','d') typedef struct { UINT32 Signature; @@ -1254,7 +1254,7 @@ typedef struct { UINTN Size; } POOL_HEADER; -#define POOL_TAIL_SIGNATURE SIGNATURE_32('p','t','a','l') +#define POOL_TAIL_SIGNATURE SIGNATURE_32('s','p','t','l') typedef struct { UINT32 Signature; -- 2.21.0.windows.1