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)'
>
>
>
>
next prev parent 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