From 9b09c932498290adc97c36cf2f683bc78876e4d3 Mon Sep 17 00:00:00 2001 From: Bruno Silvestre Date: Thu, 16 Feb 2023 10:13:54 -0300 Subject: [PATCH] Return '0' from callback on size error --- src/context.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/context.c b/src/context.c index a90a2ce..b4c761b 100644 --- a/src/context.c +++ b/src/context.c @@ -728,13 +728,17 @@ static unsigned int server_psk_cb(SSL *ssl, const char *identity, unsigned char lua_call(L, 2, 1); - if (!lua_isstring(L, -1) || lua_objlen(L, -1) == 0) { + if (!lua_isstring(L, -1)) { lua_pop(L, 2); return 0; } ret_psk = luaL_tolstring(L, -1, &psk_len); - memcpy(psk, ret_psk, (psk_len > max_psk_len) ? max_psk_len : psk_len); + + if (psk_len == 0 || psk_len > max_psk_len) + psk_len = 0; + else + memcpy(psk, ret_psk, psk_len); lua_pop(L, 2);