From: Dr. Matthias St. Pierre Date: Sat, 20 Oct 2018 14:53:57 +0000 (+0200) Subject: RAND_load_file(): return error if reseeding failed X-Git-Tag: OpenSSL_1_1_1a~87 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=13ce86259ebe6bba2096f0135337a93dba625ecb;p=oweals%2Fopenssl.git RAND_load_file(): return error if reseeding failed The failure of RAND_load_file was only noticed because of the heap corruption which was reported in #7499 and fixed in commit 5b4cb385c18a. To prevent this in the future, RAND_load_file() now explicitly checks RAND_status() and reports an error if it fails. Related-to: #7449 Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/7456) --- diff --git a/crypto/rand/randfile.c b/crypto/rand/randfile.c index 89720eb5cf..028c1281c0 100644 --- a/crypto/rand/randfile.c +++ b/crypto/rand/randfile.c @@ -148,6 +148,12 @@ int RAND_load_file(const char *file, long bytes) OPENSSL_cleanse(buf, sizeof(buf)); fclose(in); + if (!RAND_status()) { + RANDerr(RAND_F_RAND_LOAD_FILE, RAND_R_RESEED_ERROR); + ERR_add_error_data(2, "Filename=", file); + return -1; + } + return ret; }