diff options
Diffstat (limited to '')
-rw-r--r-- | src/lib_math.c | 6 |
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. */ | |||
183 | LJLIB_CF(math_randomseed) | 184 | LJLIB_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 | ||