aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--util-src/crand.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/util-src/crand.c b/util-src/crand.c
index 2996b84d..cff82dab 100644
--- a/util-src/crand.c
+++ b/util-src/crand.c
@@ -59,8 +59,7 @@ int getrandom(void *buf, size_t buflen, unsigned int flags) {
#endif
int Lrandom(lua_State *L) {
- int ret = 0;
- size_t len = (size_t)luaL_checkinteger(L, 1);
+ const size_t len = (size_t)luaL_checkinteger(L, 1);
void *buf = lua_newuserdata(L, len);
#if defined(WITH_GETRANDOM)
@@ -69,25 +68,22 @@ int Lrandom(lua_State *L) {
* *does* block if the entropy pool is not yet initialized.
*/
int left = len;
- char *b = buf;
+ char *p = buf;
do {
- ret = getrandom(b, left, 0);
+ int ret = getrandom(p, left, 0);
if(ret < 0) {
lua_pushstring(L, strerror(errno));
return lua_error(L);
}
- b += ret;
+ p += ret;
left -= ret;
} while(left > 0);
- ret = len;
-
#elif defined(WITH_ARC4RANDOM)
arc4random_buf(buf, len);
- ret = len;
#elif defined(WITH_OPENSSL)
if(!RAND_status()) {
@@ -95,11 +91,7 @@ int Lrandom(lua_State *L) {
return lua_error(L);
}
- ret = RAND_bytes(buf, len);
-
- if(ret == 1) {
- ret = len;
- } else {
+ if(RAND_bytes(buf, len) != 1) {
/* TODO ERR_get_error() */
lua_pushstring(L, "RAND_bytes() failed");
return lua_error(L);
@@ -107,7 +99,7 @@ int Lrandom(lua_State *L) {
#endif
- lua_pushlstring(L, buf, ret);
+ lua_pushlstring(L, buf, len);
return 1;
}