summaryrefslogtreecommitdiffstats
path: root/FmpDevicePkg
diff options
context:
space:
mode:
authorMichael Kubacki <michael.kubacki@microsoft.com>2020-08-12 08:23:57 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2020-08-13 07:09:15 +0000
commit3633d5309f67550e2369776b37220674ad1b623c (patch)
treeb05f94ab0af42e3e154c9cd4c9d186fe6d3d1fb9 /FmpDevicePkg
parente0eacd7daa6f2e59de2b35a5dfe8bb4c38821e31 (diff)
downloadedk2-3633d5309f67550e2369776b37220674ad1b623c.tar.gz
edk2-3633d5309f67550e2369776b37220674ad1b623c.tar.bz2
edk2-3633d5309f67550e2369776b37220674ad1b623c.zip
FmpDevicePkg/FmpDxe: Fix Clang build error
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2887 The local Private pointer variable in SetTheImage() is initialized based on the caller provided This pointer argument. The cleanup label path uses the Private pointer which will not be initialized if This is NULL. This change initializes Private to NULL and accounts for Private potentially being NULL in the cleanup label path. Cc: Liming Gao <liming.gao@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Guomin Jiang <guomin.jiang@intel.com> Cc: Wei6 Xu <wei6.xu@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Tested-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Guomin Jiang <guomin.jiang@intel.com>
Diffstat (limited to 'FmpDevicePkg')
-rw-r--r--FmpDevicePkg/FmpDxe/FmpDxe.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/FmpDevicePkg/FmpDxe/FmpDxe.c b/FmpDevicePkg/FmpDxe/FmpDxe.c
index 854feec0a1..427b215ddc 100644
--- a/FmpDevicePkg/FmpDxe/FmpDxe.c
+++ b/FmpDevicePkg/FmpDxe/FmpDxe.c
@@ -1043,6 +1043,7 @@ SetTheImage (
UINT32 DependenciesSize;
Status = EFI_SUCCESS;
+ Private = NULL;
Updateable = 0;
BooleanValue = FALSE;
FmpHeaderSize = 0;
@@ -1293,7 +1294,10 @@ SetTheImage (
cleanup:
mProgressFunc = NULL;
- SetLastAttemptStatusInVariable (Private, LastAttemptStatus);
+
+ if (Private != NULL) {
+ SetLastAttemptStatusInVariable (Private, LastAttemptStatus);
+ }
if (Progress != NULL) {
//
@@ -1306,7 +1310,9 @@ cleanup:
// Need repopulate after SetImage is called to
// update LastAttemptVersion and LastAttemptStatus.
//
- Private->DescriptorPopulated = FALSE;
+ if (Private != NULL) {
+ Private->DescriptorPopulated = FALSE;
+ }
return Status;
}