]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Variable/RuntimeDxe/VariablePolicySmmDxe.c
MdeModulePkg: VariableSmmRuntimeDxe: Fix Variable Policy Message Length
[mirror_edk2.git] / MdeModulePkg / Universal / Variable / RuntimeDxe / VariablePolicySmmDxe.c
index 672a2293bcb14d0abc2d3f5869308904809eb171..b2094fbcd6ea37539e214f3aec11250682a2c984 100644 (file)
@@ -89,7 +89,7 @@ ProtocolDisableVariablePolicy (
   CommHeader   = mMmCommunicationBuffer;\r
   PolicyHeader = (VAR_CHECK_POLICY_COMM_HEADER *)&CommHeader->Data;\r
   CopyGuid (&CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid);\r
-  CommHeader->MessageLength = BufferSize;\r
+  CommHeader->MessageLength = BufferSize - OFFSET_OF (EFI_MM_COMMUNICATE_HEADER, Data);\r
   PolicyHeader->Signature   = VAR_CHECK_POLICY_COMM_SIG;\r
   PolicyHeader->Revision    = VAR_CHECK_POLICY_COMM_REVISION;\r
   PolicyHeader->Command     = VAR_CHECK_POLICY_COMMAND_DISABLE;\r
@@ -138,7 +138,7 @@ ProtocolIsVariablePolicyEnabled (
   PolicyHeader  = (VAR_CHECK_POLICY_COMM_HEADER *)&CommHeader->Data;\r
   CommandParams = (VAR_CHECK_POLICY_COMM_IS_ENABLED_PARAMS *)(PolicyHeader + 1);\r
   CopyGuid (&CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid);\r
-  CommHeader->MessageLength = BufferSize;\r
+  CommHeader->MessageLength = BufferSize - OFFSET_OF (EFI_MM_COMMUNICATE_HEADER, Data);\r
   PolicyHeader->Signature   = VAR_CHECK_POLICY_COMM_SIG;\r
   PolicyHeader->Revision    = VAR_CHECK_POLICY_COMM_REVISION;\r
   PolicyHeader->Command     = VAR_CHECK_POLICY_COMMAND_IS_ENABLED;\r
@@ -213,7 +213,7 @@ ProtocolRegisterVariablePolicy (
   PolicyHeader = (VAR_CHECK_POLICY_COMM_HEADER *)&CommHeader->Data;\r
   PolicyBuffer = (VOID *)(PolicyHeader + 1);\r
   CopyGuid (&CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid);\r
-  CommHeader->MessageLength = BufferSize;\r
+  CommHeader->MessageLength = BufferSize - OFFSET_OF (EFI_MM_COMMUNICATE_HEADER, Data);\r
   PolicyHeader->Signature   = VAR_CHECK_POLICY_COMM_SIG;\r
   PolicyHeader->Revision    = VAR_CHECK_POLICY_COMM_REVISION;\r
   PolicyHeader->Command     = VAR_CHECK_POLICY_COMMAND_REGISTER;\r
@@ -270,7 +270,7 @@ DumpVariablePolicyHelper (
   PolicyHeader  = (VAR_CHECK_POLICY_COMM_HEADER *)&CommHeader->Data;\r
   CommandParams = (VAR_CHECK_POLICY_COMM_DUMP_PARAMS *)(PolicyHeader + 1);\r
   CopyGuid (&CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid);\r
-  CommHeader->MessageLength = BufferSize;\r
+  CommHeader->MessageLength = BufferSize - OFFSET_OF (EFI_MM_COMMUNICATE_HEADER, Data);\r
   PolicyHeader->Signature   = VAR_CHECK_POLICY_COMM_SIG;\r
   PolicyHeader->Revision    = VAR_CHECK_POLICY_COMM_REVISION;\r
   PolicyHeader->Command     = VAR_CHECK_POLICY_COMMAND_DUMP;\r
@@ -397,7 +397,7 @@ ProtocolLockVariablePolicy (
   CommHeader   = mMmCommunicationBuffer;\r
   PolicyHeader = (VAR_CHECK_POLICY_COMM_HEADER *)&CommHeader->Data;\r
   CopyGuid (&CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid);\r
-  CommHeader->MessageLength = BufferSize;\r
+  CommHeader->MessageLength = BufferSize - OFFSET_OF (EFI_MM_COMMUNICATE_HEADER, Data);\r
   PolicyHeader->Signature   = VAR_CHECK_POLICY_COMM_SIG;\r
   PolicyHeader->Revision    = VAR_CHECK_POLICY_COMM_REVISION;\r
   PolicyHeader->Command     = VAR_CHECK_POLICY_COMMAND_LOCK;\r