From 5c615a14d311bd6a472a30703df209d5ccca4595 Mon Sep 17 00:00:00 2001 From: Miguel Oliveira Date: Fri, 9 Jun 2023 21:22:25 -0300 Subject: [PATCH] Fix random.random erroring with a negative length Calling random.random(-1) will return an empty string and set the state to a 31-byte string. This makes any further call in the module error. --- ccryptolib/random.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccryptolib/random.lua b/ccryptolib/random.lua index 797a152..856d1c4 100644 --- a/ccryptolib/random.lua +++ b/ccryptolib/random.lua @@ -39,7 +39,7 @@ end local function random(len) expect(1, len, "number") lassert(initialized, "attempt to use an uninitialized random generator", 2) - local msg = ("\0"):rep(len + 32) + local msg = ("\0"):rep(math.min(len, 0) + 32) local nonce = ("\0"):rep(12) local out = chacha20.crypt(state, nonce, msg, 8, 0) state = out:sub(1, 32)