summaryrefslogtreecommitdiff
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
parente0eacd7daa6f2e59de2b35a5dfe8bb4c38821e31 (diff)
downloadedk2-3633d5309f67550e2369776b37220674ad1b623c.zip
edk2-3633d5309f67550e2369776b37220674ad1b623c.tar.gz
edk2-3633d5309f67550e2369776b37220674ad1b623c.tar.bz2
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>
-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 854feec..427b215 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;
}