From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f170.google.com (mail-pg1-f170.google.com [209.85.215.170]) by mx.groups.io with SMTP id smtpd.web10.5391.1624006979535587865 for ; Fri, 18 Jun 2021 02:02:59 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20161025 header.b=jWeBLpL9; spf=pass (domain: gmail.com, ip: 209.85.215.170, mailfrom: kuqin12@gmail.com) Received: by mail-pg1-f170.google.com with SMTP id t9so7261789pgn.4 for ; Fri, 18 Jun 2021 02:02:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DeDO4thNypVaX+F3UDj+j+l/lcEXl+j4kuaJuT8CZEo=; b=jWeBLpL9plI+xIaHkgpyS4fJvY6JMEXrnS2PFK7cVaoSIFRHIYjANBzgsuVvRvRdBT 47D53K+eLzf+x8HOmXN9eKLBUSv33dDDoBymzSrbVqZeug4teFqUdlJOeslqvuICWc8R HuamPUNOK3mPZwRLQg2IXE0yDVFRuhvIk+G+qfgCQwRtlCoQQfcg6suaRTQemHI1qcKO BPas394TplnRSvBXaU0SiDwGT7izt0Yls60bRV8BMGQjrtkC8iNRhyvOu+tnue3BTWoG BCfWKEzVp8W1p16xdgysIrXCDOml/bGCxgQ46bVpHkbW+oMV7S9KvxpV8gAWbJDTaY1g 1M1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DeDO4thNypVaX+F3UDj+j+l/lcEXl+j4kuaJuT8CZEo=; b=gTXGdck2WOMKTPzwBbZa3DAe8sfkZ/3yF7mgmZqHJd+IPrwoOZfgXUfZ+RZVC4iFTi nP8znAlZKO6x2ODxRiOHIItehqL2EMArm2LcUSpdAiZZ8XoKm5ijeee4MVssxe0ElcUA krGNrk7WTtVJyYMnm3Jzbs2aRYM1GddTw1ErAC5CufpUw1WcBXUyRLI+WHCOw55iIyWE uYeOJbNyWqEavg7SVZs5R190h8PKPYOY07+gvXvWXjh8nTGy0quXjukzaVBEyd2YkYhH P7uqRNVzRvJWxP4blqgKhWZZVZ6NshJv1QyNPB8Nms5jbzXVp/G69q+zJ57Y3jh+Ad1j rg/w== X-Gm-Message-State: AOAM530HoL75E2NH203nn1DpNSLXgqeqRJhoqBh3KUzBDzdYioA3F7ov oBiGpzPNKsOyTiKGajuBVWeBWMXbBkAfUg== X-Google-Smtp-Source: ABdhPJzO16vuCZd3H5WKey6G9FY4gKCsy9Bj9T9Q9Yj21JYjen+M0IMjObJWNCawWBw8wAjGEm+oFQ== X-Received: by 2002:a63:4d4:: with SMTP id 203mr2114408pge.65.1624006978915; Fri, 18 Jun 2021 02:02:58 -0700 (PDT) Return-Path: Received: from localhost.localdomain ([50.35.88.161]) by smtp.gmail.com with ESMTPSA id b1sm7702512pgb.91.2021.06.18.02.02.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Jun 2021 02:02:58 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Jian J Wang , Hao A Wu , Eric Dong , Ray Ni Subject: [PATCH v2 4/6] MdeModulePkg: SmiHandlerProfileInfo: Updated MessageLength calculation Date: Fri, 18 Jun 2021 02:02:41 -0700 Message-Id: <20210618090243.2517-5-kuqin12@gmail.com> X-Mailer: git-send-email 2.31.1.windows.1 In-Reply-To: <20210618090243.2517-1-kuqin12@gmail.com> References: <20210618090243.2517-1-kuqin12@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3398 This change replaced the calculation of communication buffer size from explicitly adding the size of each member with the OFFSET macro function. This will make the structure field defition change transparent to consumers. Cc: Jian J Wang Cc: Hao A Wu Cc: Eric Dong Cc: Ray Ni Signed-off-by: Kun Qin --- Notes: v2: - Updated comments by removing "BZ" tags [Hao] MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo.c b/MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo.c index 4153074b7a80..4bfd5946caba 100644 --- a/MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo.c +++ b/MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo.c @@ -116,7 +116,10 @@ GetSmiHandlerProfileDatabase( CommGetInfo->Header.ReturnStatus = (UINT64)-1; CommGetInfo->DataSize = 0; - CommSize = sizeof(EFI_GUID) + sizeof(UINTN) + CommHeader->MessageLength; + // + // The CommHeader->MessageLength contains a definitive value, thus UINTN cast is safe here. + // + CommSize = OFFSET_OF(EFI_SMM_COMMUNICATE_HEADER, Data) + (UINTN)CommHeader->MessageLength; Status = SmmCommunication->Communicate(SmmCommunication, CommBuffer, &CommSize); if (EFI_ERROR(Status)) { Print(L"SmiHandlerProfile: SmmCommunication - %r\n", Status); @@ -149,7 +152,10 @@ GetSmiHandlerProfileDatabase( CommGetData->Header.DataLength = sizeof(*CommGetData); CommGetData->Header.ReturnStatus = (UINT64)-1; - CommSize = sizeof(EFI_GUID) + sizeof(UINTN) + CommHeader->MessageLength; + // + // The CommHeader->MessageLength contains a definitive value, thus UINTN cast is safe here. + // + CommSize = OFFSET_OF(EFI_SMM_COMMUNICATE_HEADER, Data) + (UINTN)CommHeader->MessageLength; Buffer = (UINT8 *)CommHeader + CommSize; Size -= CommSize; -- 2.31.1.windows.1