public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Ard Biesheuvel" <ard.biesheuvel@linaro.org>
To: edk2-devel-groups-io <devel@edk2.groups.io>,
	Sami Mujawar <sami.mujawar@arm.com>
Cc: Alexei Fedorov <Alexei.Fedorov@arm.com>,
	 "(Exiting) Leif Lindholm" <leif.lindholm@linaro.org>,
	Matteo Carlini <Matteo.Carlini@arm.com>,
	 Laura Moretta <Laura.Moretta@arm.com>, nd <nd@arm.com>
Subject: Re: [edk2-devel] [PATCH v2 05/16] DynamicTablesPkg: Fix Proc node length assignment
Date: Mon, 30 Mar 2020 10:11:20 +0200	[thread overview]
Message-ID: <CAKv+Gu_g1AEaR8fWrAK-CkCxZ45zDLe1_j7c1LYT5EpYwwB2xQ@mail.gmail.com> (raw)
In-Reply-To: <20200329151353.14096-6-sami.mujawar@arm.com>

On Sun, 29 Mar 2020 at 17:14, Sami Mujawar <sami.mujawar@arm.com> wrote:
>
> The length field for the Processor Hierarchy node structure is
> 8-bit wide while the number of private resource field is 32-bit
> wide. Therefore, the GetProcHierarchyNodeSize() returns the size
> as a 32-bit value.
>
> The VS2017 compiler reports 'warning C4244: '=': conversion from
> 'UINT32' to 'UINT8', possible loss of data' while assigning the
> length field of the Processor Hierarchy node structure.
>
> To fix this, a type cast is added. In addition, there is a check
> to ensure that the Processor Hierarchy node size does not exceed
> MAX_UINT8.
>
> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>

Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> ---
>
> Notes:
>     v2:
>       Splitting patch series and re-submitting DynamicTablesPkg     [SAMI]
>       patches from https://edk2.groups.io/g/devel/message/46261
>
>  DynamicTablesPkg/Library/Acpi/Arm/AcpiPpttLibArm/PpttGenerator.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiPpttLibArm/PpttGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiPpttLibArm/PpttGenerator.c
> index 9e42eee9b75bb330833b0f56c98947563d9eb821..40699ce113caa8530c89ac20562cf5abda26b88e 100644
> --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiPpttLibArm/PpttGenerator.c
> +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiPpttLibArm/PpttGenerator.c
> @@ -504,6 +504,7 @@ AddProcHierarchyNodes (
>
>    PPTT_NODE_INDEXER                     * ProcNodeIterator;
>    UINT32                                  NodeCount;
> +  UINT32                                  Length;
>
>    ASSERT (
>      (Generator != NULL) &&
> @@ -539,8 +540,8 @@ AddProcHierarchyNodes (
>      // imposed on the Processor Hierarchy node by the specification.
>      // Note: The length field is 8 bit wide while the number of private
>      // resource field is 32 bit wide.
> -    if ((sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR) +
> -        (ProcInfoNode->NoOfPrivateResources * sizeof (UINT32))) > MAX_UINT8) {
> +    Length = GetProcHierarchyNodeSize (ProcInfoNode);
> +    if (Length > MAX_UINT8) {
>        Status = EFI_INVALID_PARAMETER;
>        DEBUG ((
>          DEBUG_ERROR,
> @@ -556,7 +557,7 @@ AddProcHierarchyNodes (
>
>      // Populate the node header
>      ProcStruct->Type = EFI_ACPI_6_3_PPTT_TYPE_PROCESSOR;
> -    ProcStruct->Length = GetProcHierarchyNodeSize (ProcInfoNode);
> +    ProcStruct->Length = (UINT8)Length;
>      ProcStruct->Reserved[0] = EFI_ACPI_RESERVED_BYTE;
>      ProcStruct->Reserved[1] = EFI_ACPI_RESERVED_BYTE;
>
> --
> 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'
>
>
> 
>

  reply	other threads:[~2020-03-30  8:11 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-29 15:13 [PATCH v2 00/16] Fix warnings reported by VS2017 compiler Sami Mujawar
2020-03-29 15:13 ` [PATCH v2 01/16] DynamicTablesPkg: Fix entry point param definition Sami Mujawar
2020-03-30  8:09   ` [edk2-devel] " Ard Biesheuvel
2020-03-29 15:13 ` [PATCH v2 02/16] DynamicTablesPkg: Fix missing local header warning Sami Mujawar
2020-03-30  8:09   ` [edk2-devel] " Ard Biesheuvel
2020-03-29 15:13 ` [PATCH v2 03/16] DynamicTablesPkg: Remove struct CM_ARM_CPU_INFO Sami Mujawar
2020-03-30  8:10   ` [edk2-devel] " Ard Biesheuvel
2020-03-29 15:13 ` [PATCH v2 04/16] DynamicTablesPkg: Fix serial port subtype warning Sami Mujawar
2020-03-29 15:13 ` [PATCH v2 05/16] DynamicTablesPkg: Fix Proc node length assignment Sami Mujawar
2020-03-30  8:11   ` Ard Biesheuvel [this message]
2020-03-29 15:13 ` [PATCH v2 06/16] DynamicTablesPkg: Fix GT Block " Sami Mujawar
2020-03-29 15:13 ` [PATCH v2 07/16] DynamicTablesPkg: Fix Boot arch flag width Sami Mujawar
2020-03-29 15:13 ` [PATCH v2 08/16] DynamicTablesPkg: Fix ACPI table rev field width Sami Mujawar
2020-03-30  8:11   ` [edk2-devel] " Ard Biesheuvel
2020-03-29 15:13 ` [PATCH v2 09/16] DynamicTablesPkg: Fix unaligned pointers usage Sami Mujawar
2020-03-29 15:13 ` [PATCH v2 10/16] DynamicTablesPkg: Serial debug port initialisation Sami Mujawar
2020-03-29 15:13 ` [PATCH v2 11/16] DynamicTablesPkg: Remove redundant frame count check Sami Mujawar
2020-03-29 15:13 ` [PATCH v2 12/16] DynamicTablesPkg: Fix IORT node length assignment Sami Mujawar
2020-03-29 15:13 ` [PATCH v2 13/16] DynamicTablesPkg: IORT: Fix uninitialized memory usage Sami Mujawar
2020-03-29 15:13 ` [PATCH v2 14/16] DynamicTablesPkg: PPTT: " Sami Mujawar
2020-03-29 15:13 ` [PATCH v2 15/16] DynamicTablesPkg: Remove erroneous use of EFIAPI Sami Mujawar
2020-03-29 15:13 ` [PATCH v2 16/16] DynamicTablesPkg: Option for VS2017 static code analysis Sami Mujawar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAKv+Gu_g1AEaR8fWrAK-CkCxZ45zDLe1_j7c1LYT5EpYwwB2xQ@mail.gmail.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox