Diff

util-src/crand.c @ 7923:81f3068fc30c

Merge 0.10->trunk
author Kim Alvefur <zash@zash.se>
date Wed, 01 Mar 2017 02:38:05 +0100
parent 7918:12e5a54907b6
child 7931:b619b85e01aa
line wrap: on
line diff
--- a/util-src/crand.c	Sat Feb 25 17:41:39 2017 +0100
+++ b/util-src/crand.c	Wed Mar 01 02:38:05 2017 +0100
@@ -67,6 +67,11 @@
 	arc4random_buf(buf, len);
 	ret = len;
 #elif defined(WITH_OPENSSL)
+	if(!RAND_status()) {
+		lua_pushliteral(L, "OpenSSL PRNG not seeded");
+		return lua_error(L);
+	}
+
 	ret = RAND_bytes(buf, len);
 
 	if(ret == 1) {
@@ -87,6 +92,7 @@
 #if (LUA_VERSION_NUM > 501)
 	luaL_checkversion(L);
 #endif
+
 	lua_newtable(L);
 	lua_pushcfunction(L, Lrandom);
 	lua_setfield(L, -2, "bytes");
@@ -100,10 +106,6 @@
 #endif
 	lua_setfield(L, -2, "_source");
 
-#if defined(WITH_OPENSSL) && defined(_WIN32)
-	/* TODO Do we need to seed this on Windows? */
-#endif
-
 	return 1;
 }