diff options
author | Jian J Wang <jian.j.wang@intel.com> | 2018-10-29 16:20:44 +0800 |
---|---|---|
committer | Jian J Wang <jian.j.wang@intel.com> | 2018-10-30 10:16:03 +0800 |
commit | 61a62fc2587ae4d01718124f28e1ea0e60375902 (patch) | |
tree | 1b65c2a6f5f59f4eee1af5fec9c4a6dcfad5b16d | |
parent | c87ac38cf280fa969f1033de3c5b7a157aac8cbc (diff) | |
download | edk2-61a62fc2587ae4d01718124f28e1ea0e60375902.tar.gz edk2-61a62fc2587ae4d01718124f28e1ea0e60375902.tar.bz2 edk2-61a62fc2587ae4d01718124f28e1ea0e60375902.zip |
MdeModulePkg/Core: fix an issue of potential NULL pointer access
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1286
This issue is introduced by bb685071c2602cf786ea84c69bbebf2158194a38.
The *MemorySpaceMap assigned with NULL (line 1710) value might be
accessed (line 1726/1730) without any sanity check. Although it won't
happen in practice because of line 1722, we still need to add check
against NULL to make static code analyzer happy.
1710 *MemorySpaceMap = NULL;
.... ...
1722 if (DescriptorCount == *NumberOfDescriptors) {
.... ...
1726 Descriptor = *MemorySpaceMap;
.... ...
1730 BuildMemoryDescriptor (Descriptor, Entry);
Tests:
Pass build and boot to shell.
Cc: Hao Wu <hao.a.wu@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Hao Wu <hao.a.wu@intel.com>
-rw-r--r-- | MdeModulePkg/Core/Dxe/Gcd/Gcd.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/MdeModulePkg/Core/Dxe/Gcd/Gcd.c b/MdeModulePkg/Core/Dxe/Gcd/Gcd.c index 8bbdf7129f..a76d2db73c 100644 --- a/MdeModulePkg/Core/Dxe/Gcd/Gcd.c +++ b/MdeModulePkg/Core/Dxe/Gcd/Gcd.c @@ -1719,7 +1719,7 @@ CoreGetMemorySpaceMap ( // AllocatePool() called below has to be running outside the GCD lock.
//
DescriptorCount = CoreCountGcdMapEntry (&mGcdMemorySpaceMap);
- if (DescriptorCount == *NumberOfDescriptors) {
+ if (DescriptorCount == *NumberOfDescriptors && *MemorySpaceMap != NULL) {
//
// Fill in the MemorySpaceMap if no memory space map change.
//
|