From: "Alexei Fedorov" <Alexei.Fedorov@arm.com>
To: Sami Mujawar <Sami.Mujawar@arm.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Subject: Re: [PATCH v1 19/19] MdePkg: Initialise VA_LIST variables before use
Date: Fri, 23 Aug 2019 11:48:25 +0000 [thread overview]
Message-ID: <AM5PR0801MB1732A95612012F93C3D03EF49AA40@AM5PR0801MB1732.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <20190823105539.13260-20-sami.mujawar@arm.com>
[-- Attachment #1: Type: text/plain, Size: 5642 bytes --]
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Alexei
________________________________
From: Sami Mujawar <sami.mujawar@arm.com>
Sent: 23 August 2019 11:55
To: devel@edk2.groups.io <devel@edk2.groups.io>
Cc: Sami Mujawar <Sami.Mujawar@arm.com>; Alexei Fedorov <Alexei.Fedorov@arm.com>; ard.biesheuvel@linaro.org <ard.biesheuvel@linaro.org>; leif.lindholm@linaro.org <leif.lindholm@linaro.org>; Matteo Carlini <Matteo.Carlini@arm.com>; michael.d.kinney@intel.com <michael.d.kinney@intel.com>; liming.gao@intel.com <liming.gao@intel.com>; nd <nd@arm.com>
Subject: [PATCH v1 19/19] MdePkg: Initialise VA_LIST variables before use
The VS2017 compiler reports 'warning C6001: Using
uninitialized memory 'Marker'.' for VA_LIST
variables.
To fix this issue declare a VA_LIST global variable
and use this to initialise VA_LIST variables before
use.
Note: The VA_LIST cannot be assigned a NULL value
because some compilers define VA_LIST to be a
structure.
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
---
MdePkg/Library/BaseLib/SwitchStack.c | 9 +++++++++
MdePkg/Library/BasePrintLib/PrintLib.c | 5 +++++
MdePkg/Library/BasePrintLib/PrintLibInternal.c | 9 +++++++++
3 files changed, 23 insertions(+)
diff --git a/MdePkg/Library/BaseLib/SwitchStack.c b/MdePkg/Library/BaseLib/SwitchStack.c
index cb9f69f1eaceba690b48e9ca6b8a9af2e348bddd..e1bb524819b3de3521c5461ce681aa3a6c186f2c 100644
--- a/MdePkg/Library/BaseLib/SwitchStack.c
+++ b/MdePkg/Library/BaseLib/SwitchStack.c
@@ -2,12 +2,20 @@
Switch Stack functions.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2019, ARM Ltd. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include "BaseLibInternals.h"
+//
+// Declare a VA_LIST global variable that is used to initialise VA_LIST
+// variables before use. The VA_LIST cannot be assigned a NULL value
+// because some compilers define VA_LIST to be a structure.
+//
+STATIC VA_LIST gNullVaList;
+
/**
Transfers control to a function starting with a new stack.
@@ -57,6 +65,7 @@ SwitchStack (
//
ASSERT (((UINTN)NewStack & (CPU_STACK_ALIGNMENT - 1)) == 0);
+ Marker = gNullVaList;
VA_START (Marker, NewStack);
InternalSwitchStack (EntryPoint, Context1, Context2, NewStack, Marker);
diff --git a/MdePkg/Library/BasePrintLib/PrintLib.c b/MdePkg/Library/BasePrintLib/PrintLib.c
index af771652e4b0aebd616973ba1089ae5bc2b6f0c0..67c5f3dd547cea5447075ef88d697879883ba5ab 100644
--- a/MdePkg/Library/BasePrintLib/PrintLib.c
+++ b/MdePkg/Library/BasePrintLib/PrintLib.c
@@ -3,6 +3,7 @@
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
+ Copyright (c) 2019, ARM Ltd. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -177,6 +178,7 @@ UnicodeSPrint (
VA_LIST Marker;
UINTN NumberOfPrinted;
+ Marker = gNullVaList;
VA_START (Marker, FormatString);
NumberOfPrinted = UnicodeVSPrint (StartOfBuffer, BufferSize, FormatString, Marker);
VA_END (Marker);
@@ -337,6 +339,7 @@ UnicodeSPrintAsciiFormat (
VA_LIST Marker;
UINTN NumberOfPrinted;
+ Marker = gNullVaList;
VA_START (Marker, FormatString);
NumberOfPrinted = UnicodeVSPrintAsciiFormat (StartOfBuffer, BufferSize, FormatString, Marker);
VA_END (Marker);
@@ -614,6 +617,7 @@ AsciiSPrint (
VA_LIST Marker;
UINTN NumberOfPrinted;
+ Marker = gNullVaList;
VA_START (Marker, FormatString);
NumberOfPrinted = AsciiVSPrint (StartOfBuffer, BufferSize, FormatString, Marker);
VA_END (Marker);
@@ -774,6 +778,7 @@ AsciiSPrintUnicodeFormat (
VA_LIST Marker;
UINTN NumberOfPrinted;
+ Marker = gNullVaList;
VA_START (Marker, FormatString);
NumberOfPrinted = AsciiVSPrintUnicodeFormat (StartOfBuffer, BufferSize, FormatString, Marker);
VA_END (Marker);
diff --git a/MdePkg/Library/BasePrintLib/PrintLibInternal.c b/MdePkg/Library/BasePrintLib/PrintLibInternal.c
index b6ec5ac4fbb98982f8ccaf3908c2a91ce583e31e..11392f2a5d12eb059611c3ff77b27b602f9b9a40 100644
--- a/MdePkg/Library/BasePrintLib/PrintLibInternal.c
+++ b/MdePkg/Library/BasePrintLib/PrintLibInternal.c
@@ -2,12 +2,20 @@
Print Library internal worker functions.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2019, ARM Ltd. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include "PrintLibInternal.h"
+//
+// Declare a VA_LIST global variable that is used to initialise VA_LIST
+// variables before use. The VA_LIST cannot be assigned a NULL value
+// because some compilers define VA_LIST to be a structure.
+//
+extern VA_LIST gNullVaList;
+
#define WARNING_STATUS_NUMBER 5
#define ERROR_STATUS_NUMBER 33
@@ -1256,6 +1264,7 @@ BasePrintLibSPrint (
VA_LIST Marker;
UINTN NumberOfPrinted;
+ Marker = gNullVaList;
VA_START (Marker, FormatString);
NumberOfPrinted = BasePrintLibSPrintMarker (StartOfBuffer, BufferSize, Flags, FormatString, Marker, NULL);
VA_END (Marker);
--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
[-- Attachment #2: Type: text/html, Size: 8504 bytes --]
next prev parent reply other threads:[~2019-08-23 11:48 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-23 10:55 [PATCH v1 00/19] Fix warnings reported by VS2017 compiler Sami Mujawar
2019-08-23 10:55 ` [PATCH v1 01/19] DynamicTablesPkg: Fix entry point param definition Sami Mujawar
2019-08-23 11:47 ` Alexei Fedorov
2019-08-23 10:55 ` [PATCH v1 02/19] DynamicTablesPkg: Fix missing local header warning Sami Mujawar
2019-08-23 11:51 ` [edk2-devel] " Alexei Fedorov
2019-11-21 15:22 ` Philippe Mathieu-Daudé
2019-08-23 10:55 ` [PATCH v1 03/19] DynamicTablesPkg: Remove struct CM_ARM_CPU_INFO Sami Mujawar
2019-08-23 11:50 ` [edk2-devel] " Alexei Fedorov
2019-08-23 10:55 ` [PATCH v1 04/19] DynamicTablesPkg: Fix serial port subtype warning Sami Mujawar
2019-08-23 11:53 ` [edk2-devel] " Alexei Fedorov
2019-11-21 15:16 ` Philippe Mathieu-Daudé
2019-08-23 10:55 ` [PATCH v1 05/19] DynamicTablesPkg: Fix Proc node length assignment Sami Mujawar
2019-08-23 11:46 ` [edk2-devel] " Alexei Fedorov
2019-08-23 10:55 ` [PATCH v1 06/19] DynamicTablesPkg: Fix GT Block " Sami Mujawar
2019-08-23 11:52 ` [edk2-devel] " Alexei Fedorov
2019-11-21 15:56 ` Philippe Mathieu-Daudé
2019-08-23 10:55 ` [PATCH v1 07/19] DynamicTablesPkg: Fix Boot arch flag width Sami Mujawar
2020-03-27 11:40 ` [edk2-devel] " Alexei Fedorov
2019-08-23 10:55 ` [PATCH v1 08/19] DynamicTablesPkg: Fix ACPI table rev field width Sami Mujawar
2019-08-23 11:53 ` Alexei Fedorov
2019-08-23 10:55 ` [PATCH v1 09/19] DynamicTablesPkg: Fix unaligned pointers usage Sami Mujawar
2019-08-23 11:54 ` Alexei Fedorov
2019-08-23 10:55 ` [PATCH v1 10/19] DynamicTablesPkg: Serial debug port initialisation Sami Mujawar
2019-11-21 15:20 ` [edk2-devel] " Philippe Mathieu-Daudé
2019-11-21 15:23 ` Leif Lindholm
2019-11-21 15:29 ` Philippe Mathieu-Daudé
2019-11-21 15:48 ` Leif Lindholm
2019-11-21 15:55 ` Philippe Mathieu-Daudé
2020-03-27 11:43 ` Alexei Fedorov
2019-08-23 10:55 ` [PATCH v1 11/19] DynamicTablesPkg: Remove redundant frame count check Sami Mujawar
2019-08-23 11:52 ` Alexei Fedorov
2019-08-23 10:55 ` [PATCH v1 12/19] DynamicTablesPkg: Fix IORT node length assignment Sami Mujawar
2019-08-23 11:52 ` Alexei Fedorov
2019-08-23 10:55 ` [PATCH v1 13/19] DynamicTablesPkg: IORT: Fix uninitialized memory usage Sami Mujawar
2020-03-27 11:45 ` [edk2-devel] " Alexei Fedorov
2019-08-23 10:55 ` [PATCH v1 14/19] DynamicTablesPkg: PPTT: " Sami Mujawar
2019-08-23 11:49 ` Alexei Fedorov
2019-08-23 10:55 ` [PATCH v1 15/19] DynamicTablesPkg: Remove erroneous use of EFIAPI Sami Mujawar
2019-08-23 11:50 ` Alexei Fedorov
2019-11-21 15:42 ` [edk2-devel] " Philippe Mathieu-Daudé
2019-08-23 10:55 ` [PATCH v1 16/19] DynamicTablesPkg: Option for VS2017 static code analysis Sami Mujawar
2019-08-23 11:49 ` Alexei Fedorov
2019-08-23 10:55 ` [PATCH v1 17/19] ArmPlatformPkg: Fix UART divisor warning Sami Mujawar
2019-08-23 11:48 ` Alexei Fedorov
2019-11-21 12:35 ` Leif Lindholm
2019-11-21 15:13 ` [edk2-devel] " Philippe Mathieu-Daudé
2019-08-23 10:55 ` [PATCH v1 18/19] ArmPlatformPkg: Fix comparison of constants warning Sami Mujawar
2019-08-23 11:49 ` Alexei Fedorov
2019-11-21 12:35 ` Leif Lindholm
2019-11-21 12:39 ` Ard Biesheuvel
2019-11-21 12:53 ` Leif Lindholm
2019-11-21 13:09 ` Ard Biesheuvel
2019-11-21 15:15 ` Leif Lindholm
2019-11-21 15:16 ` Ard Biesheuvel
2019-08-23 10:55 ` [PATCH v1 19/19] MdePkg: Initialise VA_LIST variables before use Sami Mujawar
2019-08-23 11:48 ` Alexei Fedorov [this message]
2019-08-23 13:50 ` Liming Gao
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=AM5PR0801MB1732A95612012F93C3D03EF49AA40@AM5PR0801MB1732.eurprd08.prod.outlook.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