aboutsummaryrefslogtreecommitdiff
path: root/src/lib_math.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib_math.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib_math.c b/src/lib_math.c
index 4539f804..08bb7673 100644
--- a/src/lib_math.c
+++ b/src/lib_math.c
@@ -13,6 +13,7 @@
13#include "lualib.h" 13#include "lualib.h"
14 14
15#include "lj_obj.h" 15#include "lj_obj.h"
16#include "lj_err.h"
16#include "lj_lib.h" 17#include "lj_lib.h"
17#include "lj_vm.h" 18#include "lj_vm.h"
18#include "lj_prng.h" 19#include "lj_prng.h"
@@ -183,7 +184,10 @@ LJLIB_PUSH(top-2) /* Upvalue holds userdata with PRNGState. */
183LJLIB_CF(math_randomseed) 184LJLIB_CF(math_randomseed)
184{ 185{
185 PRNGState *rs = (PRNGState *)(uddata(udataV(lj_lib_upvalue(L, 1)))); 186 PRNGState *rs = (PRNGState *)(uddata(udataV(lj_lib_upvalue(L, 1))));
186 random_seed(rs, lj_lib_checknum(L, 1)); 187 if (L->base != L->top)
188 random_seed(rs, lj_lib_checknum(L, 1));
189 else if (!lj_prng_seed_secure(rs))
190 lj_err_caller(L, LJ_ERR_PRNGSD);
187 return 0; 191 return 0;
188} 192}
189 193