diff options
author | Dandan Bi <dandan.bi@intel.com> | 2018-03-23 11:21:56 +0800 |
---|---|---|
committer | Liming Gao <liming.gao@intel.com> | 2018-03-28 09:58:49 +0800 |
commit | 699a2c30cb6e74a55f0c3f67c376460f99c201ed (patch) | |
tree | 039d4be3c443f3cd721f2b39d8c5d5f9bfe43d30 | |
parent | d1b777440bc616f1e6da9204f3eec9f7a5a6f2e2 (diff) | |
download | edk2-699a2c30cb6e74a55f0c3f67c376460f99c201ed.tar.gz edk2-699a2c30cb6e74a55f0c3f67c376460f99c201ed.tar.bz2 edk2-699a2c30cb6e74a55f0c3f67c376460f99c201ed.zip |
OvmfPkg:Fix VS2012 build failure
Initialize local variable to suppress warning C4701/C4703:
potentially uninitialized local variable/pointer variable.
1.In VirtualMemory.c:
Read of "PageMapLevel4Entry" in SetMemoryEncDe() is only
reached when "PageMapLevel4Entry" is got correctly.
2.In VirtioBlk.c:
Reads (dereferences) of "BufferMapping" and "BufferDeviceAddress"
in SynchronousRequest() are only reached if "BufferSize > 0" *and*
we map the data buffer successfully.
3.In VirtioScsi.c:
Reads (dereferences) of "InDataMapping" and "InDataDeviceAddress",
in VirtioScsiPassThru() are only reached if
"Packet->InTransferLength > 0" on input, *and* we map the
input buffer successfully. The similar reason for "OutDataMapping"
and "OutDataDeviceAddress".
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
-rw-r--r-- | OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c | 7 | ||||
-rw-r--r-- | OvmfPkg/VirtioBlkDxe/VirtioBlk.c | 9 | ||||
-rw-r--r-- | OvmfPkg/VirtioScsiDxe/VirtioScsi.c | 11 |
3 files changed, 24 insertions, 3 deletions
diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c index c1bfa35d7a..5d6289df10 100644 --- a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c @@ -2,7 +2,7 @@ Virtual Memory Management Services to set or clear the memory encryption bit
- Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available
@@ -596,6 +596,11 @@ SetMemoryEncDec ( BOOLEAN IsWpEnabled;
RETURN_STATUS Status;
+ //
+ // Set PageMapLevel4Entry to suppress incorrect compiler/analyzer warnings.
+ //
+ PageMapLevel4Entry = NULL;
+
DEBUG ((
DEBUG_VERBOSE,
"%a:%a: Cr3Base=0x%Lx Physical=0x%Lx Length=0x%Lx Mode=%a CacheFlush=%u\n",
diff --git a/OvmfPkg/VirtioBlkDxe/VirtioBlk.c b/OvmfPkg/VirtioBlkDxe/VirtioBlk.c index 5559884345..95e42ef3dc 100644 --- a/OvmfPkg/VirtioBlkDxe/VirtioBlk.c +++ b/OvmfPkg/VirtioBlkDxe/VirtioBlk.c @@ -11,7 +11,7 @@ synchronous requests and EFI_BLOCK_IO_PROTOCOL for now.
Copyright (C) 2012, Red Hat, Inc.
- Copyright (c) 2012 - 2016, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2017, AMD Inc, All rights reserved.<BR>
This program and the accompanying materials are licensed and made available
@@ -265,6 +265,13 @@ SynchronousRequest ( BlockSize = Dev->BlockIoMedia.BlockSize;
//
+ // Set BufferMapping and BufferDeviceAddress to suppress incorrect
+ // compiler/analyzer warnings.
+ //
+ BufferMapping = NULL;
+ BufferDeviceAddress = 0;
+
+ //
// ensured by VirtioBlkInit()
//
ASSERT (BlockSize > 0);
diff --git a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c b/OvmfPkg/VirtioScsiDxe/VirtioScsi.c index 1a68f06210..e773ecf7cc 100644 --- a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c +++ b/OvmfPkg/VirtioScsiDxe/VirtioScsi.c @@ -26,7 +26,7 @@ unreasonable for now.
Copyright (C) 2012, Red Hat, Inc.
- Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2017, AMD Inc, All rights reserved.<BR>
This program and the accompanying materials are licensed and made available
@@ -455,6 +455,15 @@ VirtioScsiPassThru ( UINTN InDataNumPages;
BOOLEAN OutDataBufferIsMapped;
+ //
+ // Set InDataMapping,OutDataMapping,InDataDeviceAddress and OutDataDeviceAddress to
+ // suppress incorrect compiler/analyzer warnings.
+ //
+ InDataMapping = NULL;
+ OutDataMapping = NULL;
+ InDataDeviceAddress = 0;
+ OutDataDeviceAddress = 0;
+
ZeroMem ((VOID*) &Request, sizeof (Request));
Dev = VIRTIO_SCSI_FROM_PASS_THRU (This);
|