summaryrefslogtreecommitdiff
path: root/Cryptlib/Rand
diff options
context:
space:
mode:
Diffstat (limited to 'Cryptlib/Rand')
-rw-r--r--Cryptlib/Rand/CryptRand.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/Cryptlib/Rand/CryptRand.c b/Cryptlib/Rand/CryptRand.c
index 4b275951..dc3ab992 100644
--- a/Cryptlib/Rand/CryptRand.c
+++ b/Cryptlib/Rand/CryptRand.c
@@ -43,6 +43,10 @@ RandomSeed (
IN UINTN SeedSize
)
{
+ if (SeedSize > INT_MAX) {
+ return FALSE;
+ }
+
//
// Seed the pseudorandom number generator with user-supplied value.
// NOTE: A cryptographic PRNG must be seeded with unpredictable data.
@@ -53,7 +57,11 @@ RandomSeed (
RAND_seed (DefaultSeed, sizeof (DefaultSeed));
}
- return TRUE;
+ if (RAND_status () == 1) {
+ return TRUE;
+ }
+
+ return FALSE;
}
/**
@@ -78,7 +86,7 @@ RandomBytes (
//
// Check input parameters.
//
- if (Output == NULL) {
+ if (Output == NULL || Size > INT_MAX) {
return FALSE;
}