From 3633d5309f67550e2369776b37220674ad1b623c Mon Sep 17 00:00:00 2001 From: Michael Kubacki Date: Wed, 12 Aug 2020 08:23:57 +0800 Subject: 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 Cc: Michael D Kinney Cc: Guomin Jiang Cc: Wei6 Xu Signed-off-by: Michael Kubacki Tested-by: Liming Gao Reviewed-by: Liming Gao Reviewed-by: Guomin Jiang --- FmpDevicePkg/FmpDxe/FmpDxe.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'FmpDevicePkg') 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; } -- cgit