Template
1
0
mirror of https://github.com/bol-van/zapret2.git synced 2026-03-21 00:35:49 +00:00

nfqws2: minor lua safety checks

This commit is contained in:
bol-van
2025-12-23 21:57:25 +03:00
parent da8bb9f5b8
commit b7a5f0410f

View File

@@ -412,7 +412,7 @@ static int luacall_parse_hex(lua_State *L)
LUA_STACK_GUARD_ENTER(L)
size_t l;
const char *hex = lua_tolstring(L,1,&l);
const char *hex = luaL_checklstring(L,1,&l);
if ((l&1)) goto err;
l>>=1;
uint8_t *p = malloc(l);
@@ -1291,7 +1291,7 @@ void lua_pushf_ctrack_pos(const t_ctrack *ctrack, const t_ctrack_position *pos)
lua_pushf_int("winsize_calc", pos->winsize_calc);
lua_pushf_int("scale", pos->scale);
lua_pushf_int("mss", pos->mss);
lua_pushf_int("ip6flow", pos->ip6flow);
lua_pushf_int("ip6_flow", pos->ip6flow);
lua_rawset(params.L,-3);
}
@@ -1659,7 +1659,7 @@ bool lua_reconstruct_iphdr(int idx, struct ip *ip, size_t *len)
if (lua_type(params.L,-1)==LUA_TSTRING)
{
p = lua_tolstring(params.L,-1,&lopt);
if (lopt)
if (p && lopt)
{
if (lopt>40 || ((sizeof(struct ip) + ((lopt+3)&~3)) > *len)) goto err;
memcpy(ip+1,p,lopt);
@@ -1991,7 +1991,7 @@ bool lua_reconstruct_dissect(int idx, uint8_t *buf, size_t *len, bool badsum, bo
lua_getfield(params.L,idx,"payload");
p = lua_tolstring(params.L,-1,&lpayload);
if (lpayload)
if (p && lpayload)
{
if (left<lpayload) goto err;
memcpy(data,p,lpayload);