diff options
-rw-r--r-- | SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c index 421abb52b8..292338b7d0 100644 --- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c +++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c @@ -64,6 +64,18 @@ RngDriverEntry ( EFI_HANDLE Handle;
//
+ // Get the list of available algorithm.
+ //
+ Status = GetAvailableAlgorithms ();
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ if (mAvailableAlgoArrayCount == 0) {
+ return EFI_REQUEST_UNLOAD_IMAGE;
+ }
+
+ //
// Install UEFI RNG (Random Number Generator) Protocol
//
Handle = NULL;
@@ -74,13 +86,10 @@ RngDriverEntry ( NULL
);
if (EFI_ERROR (Status)) {
- return Status;
+ FreeAvailableAlgorithms ();
}
- //
- // Get the list of available algorithm.
- //
- return GetAvailableAlgorithms ();
+ return Status;
}
/**
|