diff --git a/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerCommon.c b/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerCommon.c index bc1ba59835..f6c8c3db36 100644 --- a/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerCommon.c +++ b/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerCommon.c @@ -188,11 +188,12 @@ RedfishConfigCommonStop ( &NumberOfHandles, &HandleBuffer ); - if (EFI_ERROR (Status) && (Status != EFI_NOT_FOUND)) { + if (Status == EFI_NOT_FOUND) { + return EFI_SUCCESS; + } else if (EFI_ERROR (Status)) { return Status; } - Status = EFI_SUCCESS; for (Index = 0; Index < NumberOfHandles; Index++) { Status = gBS->HandleProtocol ( HandleBuffer[Index], @@ -208,6 +209,8 @@ RedfishConfigCommonStop ( } } + gBS->FreePool (HandleBuffer); + return Status; } @@ -272,4 +275,6 @@ RedfishConfigHandlerInitialization ( ); ASSERT_EFI_ERROR (Status); } + + gBS->FreePool (HandleBuffer); }