{
"ground_truth": [],
"labels": [
{"rule":"MEM05-C","file":"lauxlib.c","line":47,"verdict":"FP","confidence":"high","reason":"findfield recursion bounded to depth 2 by design; no real stack risk"},
{"rule":"API00-C","file":"lauxlib.c","line":127,"verdict":"FP","confidence":"high","reason":"L is a required LUALIB_API parameter; NULL-check contract is caller's"},
{"rule":"API00-C","file":"lauxlib.c","line":127,"verdict":"FP","confidence":"high","reason":"L1 is a required LUALIB_API parameter; NULL-check contract is caller's"},
{"rule":"DCL15-C","file":"lauxlib.c","line":127,"verdict":"FP","confidence":"high","reason":"LUALIB_API expands to visibility attribute; symbol is declared in lauxlib.h"},
{"rule":"API00-C","file":"lauxlib.c","line":171,"verdict":"FP","confidence":"high","reason":"extramsg is required LUALIB_API parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":171,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":171,"verdict":"FP","confidence":"high","reason":"luaL_argerror is a public API symbol exported via lauxlib.h"},
{"rule":"API00-C","file":"lauxlib.c","line":197,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":197,"verdict":"FP","confidence":"high","reason":"tname is required LUALIB_API parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":197,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":197,"verdict":"FP","confidence":"high","reason":"luaL_typeerror is public API exported via lauxlib.h"},
{"rule":"API00-C","file":"lauxlib.c","line":220,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":220,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":220,"verdict":"FP","confidence":"high","reason":"luaL_where is public API exported via lauxlib.h"},
{"rule":"API00-C","file":"lauxlib.c","line":238,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":238,"verdict":"FP","confidence":"high","reason":"fmt is required LUALIB_API parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":238,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":238,"verdict":"FP","confidence":"high","reason":"luaL_error is public API exported via lauxlib.h"},
{"rule":"DCL15-C","file":"lauxlib.c","line":249,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":249,"verdict":"FP","confidence":"high","reason":"luaL_fileresult is public API exported via lauxlib.h"},
{"rule":"CON33-C","file":"lauxlib.c","line":258,"verdict":"FP","confidence":"high","reason":"Lua is single-threaded at C level; strerror safe in this context"},
{"rule":"CON34-C","file":"lauxlib.c","line":258,"verdict":"FP","confidence":"high","reason":"Lua is single-threaded at C level; strerror safe in this context"},
{"rule":"PRE00-C","file":"lauxlib.c","line":278,"verdict":"FP","confidence":"high","reason":"l_inspectstat used only with non-side-effecting variable names at call sites"},
{"rule":"PRE01-C","file":"lauxlib.c","line":278,"verdict":"FP","confidence":"high","reason":"Parameters stat/what used as simple variable names; no precedence hazard"},
{"rule":"PRE01-C","file":"lauxlib.c","line":278,"verdict":"FP","confidence":"high","reason":"Parameters stat/what used as simple variable names; no precedence hazard"},
{"rule":"PRE10-C","file":"lauxlib.c","line":278,"verdict":"FP","confidence":"high","reason":"l_inspectstat used as a statement (not in if-without-braces); safe"},
{"rule":"PRE12-C","file":"lauxlib.c","line":278,"verdict":"FP","confidence":"high","reason":"Macro arguments at call sites are plain variables, not expressions with side-effects"},
{"rule":"DCL15-C","file":"lauxlib.c","line":291,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL15-C","file":"lauxlib.c","line":317,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":317,"verdict":"FP","confidence":"high","reason":"luaL_newmetatable is public API exported via lauxlib.h"},
{"rule":"STR30-C","file":"lauxlib.c","line":323,"verdict":"FP","confidence":"high","reason":"lua_setfield takes const char* key; string literal not modified"},
{"rule":"API00-C","file":"lauxlib.c","line":330,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":330,"verdict":"FP","confidence":"high","reason":"tname is required LUALIB_API parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":330,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"API00-C","file":"lauxlib.c","line":336,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"DCL30-C","file":"lauxlib.c","line":344,"verdict":"FP","confidence":"high","reason":"p is pointer from lua_touserdata (Lua stack slot), not C automatic storage"},
{"rule":"API00-C","file":"lauxlib.c","line":351,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":351,"verdict":"FP","confidence":"high","reason":"tname is required LUALIB_API parameter; caller contract"},
{"rule":"DCL30-C","file":"lauxlib.c","line":354,"verdict":"FP","confidence":"high","reason":"p is pointer from luaL_testudata; not a C automatic-storage local"},
{"rule":"API00-C","file":"lauxlib.c","line":366,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":366,"verdict":"FP","confidence":"high","reason":"def is optional parameter (NULL means use checkstring); intentional"},
{"rule":"API00-C","file":"lauxlib.c","line":366,"verdict":"FP","confidence":"high","reason":"lst is required LUALIB_API parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":366,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL15-C","file":"lauxlib.c","line":386,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":386,"verdict":"FP","confidence":"high","reason":"luaL_checkstack is public API exported via lauxlib.h"},
{"rule":"EXP20-C","file":"lauxlib.c","line":387,"verdict":"FP","confidence":"high","reason":"l_unlikely(!lua_checkstack(...)) is explicit boolean test; clear semantics"},
{"rule":"DCL15-C","file":"lauxlib.c","line":396,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL15-C","file":"lauxlib.c","line":402,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"API00-C","file":"lauxlib.c","line":408,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"DCL30-C","file":"lauxlib.c","line":411,"verdict":"FP","confidence":"high","reason":"s from lua_tolstring points into Lua string storage, not C local"},
{"rule":"API00-C","file":"lauxlib.c","line":415,"verdict":"FP","confidence":"high","reason":"len is optional output pointer; NULL allowed (handled in body)"},
{"rule":"API05-C","file":"lauxlib.c","line":416,"verdict":"FP","confidence":"high","reason":"Lua uses portable C99, not conformant array parameters; categorical FP"},
{"rule":"API00-C","file":"lauxlib.c","line":426,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":426,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"EXP33-C","file":"lauxlib.c","line":429,"verdict":"FP","confidence":"high","reason":"isnum initialized by lua_tonumberx via output pointer before use"},
{"rule":"API00-C","file":"lauxlib.c","line":435,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":435,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"API00-C","file":"lauxlib.c","line":448,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":448,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"EXP33-C","file":"lauxlib.c","line":451,"verdict":"FP","confidence":"high","reason":"isnum initialized by lua_tointegerx via output pointer before use"},
{"rule":"API00-C","file":"lauxlib.c","line":458,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":458,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"EXP34-C","file":"lauxlib.c","line":486,"verdict":"FP","confidence":"high","reason":"box from lua_touserdata on a just-created userdata; cannot be NULL"},
{"rule":"DCL31-C","file":"lauxlib.c","line":491,"verdict":"FP","confidence":"high","reason":"lua_getallocf is declared in lua.h; sqc missed the include"},
{"rule":"EXP33-C","file":"lauxlib.c","line":491,"verdict":"FP","confidence":"high","reason":"ud initialized by lua_getallocf output-pointer parameter before use"},
{"rule":"ARR02-C","file":"lauxlib.c","line":509,"verdict":"FP","confidence":"high","reason":"Omitting array bound when full initializer is present is standard C idiom"},
{"rule":"EXP34-C","file":"lauxlib.c","line":518,"verdict":"FP","confidence":"high","reason":"box from lua_touserdata on boxmt userdata; guaranteed non-NULL by lua_setmetatable path"},
{"rule":"PRE00-C","file":"lauxlib.c","line":530,"verdict":"FP","confidence":"high","reason":"buffonstack used with plain variable B; no side-effecting arguments"},
{"rule":"PRE12-C","file":"lauxlib.c","line":530,"verdict":"FP","confidence":"high","reason":"B is a plain variable at all call sites; no multiple-evaluation hazard"},
{"rule":"PRE00-C","file":"lauxlib.c","line":537,"verdict":"FP","confidence":"high","reason":"checkbufferlevel used with plain variable B; no side-effecting arguments"},
{"rule":"PRE01-C","file":"lauxlib.c","line":537,"verdict":"FP","confidence":"high","reason":"B is a plain variable at call sites; no precedence hazard"},
{"rule":"PRE02-C","file":"lauxlib.c","line":537,"verdict":"FP","confidence":"high","reason":"checkbufferlevel is used as a statement; outer parentheses not needed"},
{"rule":"PRE12-C","file":"lauxlib.c","line":537,"verdict":"FP","confidence":"high","reason":"B is a plain variable at all call sites; no multiple-evaluation hazard"},
{"rule":"DCL13-C","file":"lauxlib.c","line":546,"verdict":"FP","confidence":"high","reason":"Advisory; parameter B is an internal luaL_Buffer used via member access"},
{"rule":"INT14-C","file":"lauxlib.c","line":552,"verdict":"FP","confidence":"high","reason":"Intentional buffer growth arithmetic: newsize >>= shift for 1.5x growth"},
{"rule":"ARR38-C","file":"lauxlib.c","line":581,"verdict":"FP","confidence":"high","reason":"memcpy size B->n*sizeof(char)==B->n; overflow guard at line 548"},
{"rule":"INT32-C","file":"lauxlib.c","line":581,"verdict":"FP","confidence":"high","reason":"sizeof(char)==1; B->n*1 cannot overflow beyond size_t type"},
{"rule":"API00-C","file":"lauxlib.c","line":592,"verdict":"FP","confidence":"high","reason":"B is required parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":597,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":597,"verdict":"FP","confidence":"high","reason":"luaL_addlstring is public API exported via lauxlib.h"},
{"rule":"API05-C","file":"lauxlib.c","line":597,"verdict":"FP","confidence":"high","reason":"Lua uses portable C99, not conformant array parameters; categorical FP"},
{"rule":"ARR38-C","file":"lauxlib.c","line":600,"verdict":"FP","confidence":"high","reason":"memcpy size l is the string length; prepbuffsize ensures buffer is large enough"},
{"rule":"EXP05-C","file":"lauxlib.c","line":600,"verdict":"FP","confidence":"high","reason":"b from prepbuffsize is a non-const char*; the const-cast in the parameter declaration is advisory"},
{"rule":"EXP34-C","file":"lauxlib.c","line":600,"verdict":"FP","confidence":"high","reason":"prepbuffsize never returns NULL; it longjmps on allocation failure"},
{"rule":"API00-C","file":"lauxlib.c","line":606,"verdict":"FP","confidence":"high","reason":"B is required parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":606,"verdict":"FP","confidence":"high","reason":"s is required non-NULL C-string parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":606,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":606,"verdict":"FP","confidence":"high","reason":"luaL_addstring is public API exported via lauxlib.h"},
{"rule":"API00-C","file":"lauxlib.c","line":611,"verdict":"FP","confidence":"high","reason":"B is required parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":611,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":611,"verdict":"FP","confidence":"high","reason":"luaL_pushresult is public API exported via lauxlib.h"},
{"rule":"EXP34-C","file":"lauxlib.c","line":623,"verdict":"FP","confidence":"high","reason":"box from lua_touserdata on stack top in buffonstack branch; checkbufferlevel asserts non-NULL"},
{"rule":"EXP33-C","file":"lauxlib.c","line":627,"verdict":"FP","confidence":"high","reason":"ud initialized by lua_getallocf output-pointer parameter before use"},
{"rule":"API00-C","file":"lauxlib.c","line":635,"verdict":"FP","confidence":"high","reason":"B is required parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":635,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"API00-C","file":"lauxlib.c","line":650,"verdict":"FP","confidence":"high","reason":"B is required parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":650,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":650,"verdict":"FP","confidence":"high","reason":"luaL_addvalue is public API exported via lauxlib.h"},
{"rule":"EXP33-C","file":"lauxlib.c","line":654,"verdict":"FP","confidence":"high","reason":"len initialized by lua_tolstring output-pointer parameter before memcpy"},
{"rule":"ARR38-C","file":"lauxlib.c","line":655,"verdict":"FP","confidence":"high","reason":"memcpy size len is the string length; prepbuffsize ensures buffer large enough"},
{"rule":"EXP05-C","file":"lauxlib.c","line":655,"verdict":"FP","confidence":"high","reason":"b from prepbuffsize is non-const char*; advisory const-cast finding"},
{"rule":"EXP34-C","file":"lauxlib.c","line":655,"verdict":"FP","confidence":"high","reason":"prepbuffsize never returns NULL; longjmps on alloc failure"},
{"rule":"EXP34-C","file":"lauxlib.c","line":655,"verdict":"FP","confidence":"high","reason":"s from lua_tolstring is non-NULL; guaranteed by lua_isstring guard in addvalue"},
{"rule":"API00-C","file":"lauxlib.c","line":661,"verdict":"FP","confidence":"high","reason":"L is required parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":661,"verdict":"FP","confidence":"high","reason":"B is required parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":661,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":661,"verdict":"FP","confidence":"high","reason":"luaL_buffinit is public API exported via lauxlib.h"},
{"rule":"API00-C","file":"lauxlib.c","line":670,"verdict":"FP","confidence":"high","reason":"L is required parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":670,"verdict":"FP","confidence":"high","reason":"B is required parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":689,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL31-C","file":"lauxlib.c","line":710,"verdict":"FP","confidence":"high","reason":"lua_rawlen declared in lua.h; sqc missed the include"},
{"rule":"DCL15-C","file":"lauxlib.c","line":716,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"API05-C","file":"lauxlib.c","line":743,"verdict":"FP","confidence":"high","reason":"Lua uses portable C99, not conformant array parameters; categorical FP"},
{"rule":"ARR38-C","file":"lauxlib.c","line":755,"verdict":"FP","confidence":"high","reason":"fread(buff,1,sizeof(buff),f) is correct: element size 1, count sizeof(buff)"},
{"rule":"FIO17-C","file":"lauxlib.c","line":755,"verdict":"FP","confidence":"high","reason":"fread result used as byte count returned to lua_load; no null-terminator needed"},
{"rule":"CON33-C","file":"lauxlib.c","line":765,"verdict":"FP","confidence":"high","reason":"Lua is single-threaded at C level; strerror safe in this context"},
{"rule":"CON34-C","file":"lauxlib.c","line":765,"verdict":"FP","confidence":"high","reason":"Lua is single-threaded at C level; strerror safe in this context"},
{"rule":"MSC37-C","file":"lauxlib.c","line":779,"verdict":"FP","confidence":"high","reason":"skipBOM always returns int from getc; sqc false alarm on fall-off-end"},
{"rule":"DCL00-C","file":"lauxlib.c","line":780,"verdict":"FP","confidence":"high","reason":"Advisory const on local variable; not a defect"},
{"rule":"DCL00-C","file":"lauxlib.c","line":796,"verdict":"FP","confidence":"high","reason":"Advisory const on local variable; not a defect"},
{"rule":"FIO34-C","file":"lauxlib.c","line":798,"verdict":"FP","confidence":"high","reason":"c != EOF with getc returning int is standard C EOF detection idiom"},
{"rule":"API00-C","file":"lauxlib.c","line":808,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":808,"verdict":"FP","confidence":"high","reason":"mode is optional parameter (NULL allowed, checked in body)"},
{"rule":"DCL15-C","file":"lauxlib.c","line":808,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"MEM10-C","file":"lauxlib.c","line":814,"verdict":"FP","confidence":"high","reason":"Direct NULL check for filename is the standard Lua API idiom; no abstraction needed"},
{"rule":"FIO05-C","file":"lauxlib.c","line":821,"verdict":"FP","confidence":"high","reason":"Lua is not a setuid program; fstat ownership check is inappropriate here"},
{"rule":"WIN03-C","file":"lauxlib.c","line":821,"verdict":"FP","confidence":"high","reason":"Lua is cross-platform; N flag is Windows-only extension not in portable C"},
{"rule":"EXP33-C","file":"lauxlib.c","line":827,"verdict":"FP","confidence":"high","reason":"c is written by skipcomment via output pointer at line 825 before use at 827"},
{"rule":"ERR33-C","file":"lauxlib.c","line":831,"verdict":"FP","confidence":"high","reason":"freopen return checked immediately: if (lf.f == NULL) return errfile(...)"},
{"rule":"MEM12-C","file":"lauxlib.c","line":832,"verdict":"FP","confidence":"high","reason":"lf.f is the same FILE* passed to freopen; on NULL return lf.f is already invalid; fclose at 841 only called when filename non-NULL"},
{"rule":"ERR00-C","file":"lauxlib.c","line":841,"verdict":"FP","confidence":"high","reason":"fclose return not checked; read errors captured via ferror at 839"},
{"rule":"ERR33-C","file":"lauxlib.c","line":841,"verdict":"FP","confidence":"high","reason":"fclose return not checked; read errors captured via ferror at 839"},
{"rule":"API05-C","file":"lauxlib.c","line":857,"verdict":"FP","confidence":"high","reason":"Lua uses portable C99, not conformant array parameters; categorical FP"},
{"rule":"API00-C","file":"lauxlib.c","line":867,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":867,"verdict":"FP","confidence":"high","reason":"buff is required parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":867,"verdict":"FP","confidence":"high","reason":"mode is optional parameter (NULL allowed, passed to lua_load)"},
{"rule":"DCL15-C","file":"lauxlib.c","line":867,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":867,"verdict":"FP","confidence":"high","reason":"luaL_loadbufferx is public API exported via lauxlib.h"},
{"rule":"API05-C","file":"lauxlib.c","line":867,"verdict":"FP","confidence":"high","reason":"Lua uses portable C99, not conformant array parameters; categorical FP"},
{"rule":"API05-C","file":"lauxlib.c","line":868,"verdict":"FP","confidence":"high","reason":"Lua uses portable C99, not conformant array parameters; categorical FP"},
{"rule":"API05-C","file":"lauxlib.c","line":868,"verdict":"FP","confidence":"high","reason":"Lua uses portable C99, not conformant array parameters; categorical FP"},
{"rule":"API00-C","file":"lauxlib.c","line":876,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":876,"verdict":"FP","confidence":"high","reason":"s is required non-NULL C-string; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":876,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL15-C","file":"lauxlib.c","line":884,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":884,"verdict":"FP","confidence":"high","reason":"luaL_getmetafield is public API exported via lauxlib.h"},
{"rule":"DCL15-C","file":"lauxlib.c","line":900,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":900,"verdict":"FP","confidence":"high","reason":"luaL_callmeta is public API exported via lauxlib.h"},
{"rule":"API00-C","file":"lauxlib.c","line":910,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":922,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":965,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":965,"verdict":"FP","confidence":"high","reason":"l is required luaL_Reg array pointer; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":965,"verdict":"FP","confidence":"high","reason":"nup is validated by luaL_checkstack immediately in function body"},
{"rule":"DCL15-C","file":"lauxlib.c","line":965,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":965,"verdict":"FP","confidence":"high","reason":"luaL_setfuncs is public API exported via lauxlib.h"},
{"rule":"DCL15-C","file":"lauxlib.c","line":986,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":986,"verdict":"FP","confidence":"high","reason":"luaL_getsubtable is public API exported via lauxlib.h"},
{"rule":"API00-C","file":"lauxlib.c","line":1006,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":1006,"verdict":"FP","confidence":"high","reason":"modname is required LUALIB_API parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":1006,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"API00-C","file":"lauxlib.c","line":1026,"verdict":"FP","confidence":"high","reason":"b is required luaL_Buffer pointer; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":1026,"verdict":"FP","confidence":"high","reason":"s is required non-NULL string; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":1026,"verdict":"FP","confidence":"high","reason":"p is required non-NULL pattern; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":1026,"verdict":"FP","confidence":"high","reason":"r is required non-NULL replacement; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":1026,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL19-C","file":"lauxlib.c","line":1026,"verdict":"FP","confidence":"high","reason":"luaL_addgsub is public API exported via lauxlib.h"},
{"rule":"STR34-C","file":"lauxlib.c","line":1029,"verdict":"FP","confidence":"high","reason":"p is const char* used in strstr pattern; no sign-extension in string comparison"},
{"rule":"API00-C","file":"lauxlib.c","line":1039,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":1039,"verdict":"FP","confidence":"high","reason":"s is required non-NULL string; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":1039,"verdict":"FP","confidence":"high","reason":"p is required non-NULL pattern; caller contract"},
{"rule":"API00-C","file":"lauxlib.c","line":1039,"verdict":"FP","confidence":"high","reason":"r is required non-NULL replacement; caller contract"},
{"rule":"API05-C","file":"lauxlib.c","line":1049,"verdict":"FP","confidence":"high","reason":"Lua uses portable C99, not conformant array parameters; categorical FP"},
{"rule":"API05-C","file":"lauxlib.c","line":1049,"verdict":"FP","confidence":"high","reason":"Lua uses portable C99, not conformant array parameters; categorical FP"},
{"rule":"MEM03-C","file":"lauxlib.c","line":1052,"verdict":"FP","confidence":"high","reason":"luaL_alloc is a generic allocator; data is not sensitive; memset before free not needed"},
{"rule":"STR01-C","file":"lauxlib.c","line":1056,"verdict":"FP","confidence":"high","reason":"Spurious mixed-string-management advisory; no real defect"},
{"rule":"MEM06-C","file":"lauxlib.c","line":1056,"verdict":"FP","confidence":"high","reason":"Lua general allocator memory is not sensitive data; mlock inappropriate"},
{"rule":"EXP43-C","file":"lauxlib.c","line":1094,"verdict":"FP","confidence":"high","reason":"lua_setwarnf(L, f, L) stores L and ud separately; no restrict aliasing"},
{"rule":"EXP43-C","file":"lauxlib.c","line":1096,"verdict":"FP","confidence":"high","reason":"lua_setwarnf(L, f, L) stores L and ud separately; no restrict aliasing"},
{"rule":"EXP43-C","file":"lauxlib.c","line":1115,"verdict":"FP","confidence":"high","reason":"lua_setwarnf(L, f, L) stores L and ud separately; no restrict aliasing"},
{"rule":"EXP43-C","file":"lauxlib.c","line":1118,"verdict":"FP","confidence":"high","reason":"lua_setwarnf(L, f, L) stores L and ud separately; no restrict aliasing"},
{"rule":"PRE00-C","file":"lauxlib.c","line":1152,"verdict":"FP","confidence":"high","reason":"addbuff macro arguments are plain variables; no side-effecting args"},
{"rule":"PRE01-C","file":"lauxlib.c","line":1152,"verdict":"FP","confidence":"high","reason":"b is a plain pointer variable at call sites; no precedence hazard"},
{"rule":"PRE12-C","file":"lauxlib.c","line":1152,"verdict":"FP","confidence":"high","reason":"b is a plain variable at call sites; no multiple-evaluation hazard"},
{"rule":"ERR33-C","file":"lauxlib.c","line":1159,"verdict":"FP","confidence":"high","reason":"time(NULL) for randomness seed; failure acceptable (degraded entropy only)"},
{"rule":"EXP33-C","file":"lauxlib.c","line":1160,"verdict":"FP","confidence":"high","reason":"buff is unsigned int array declared at 1156; addbuff writes to it before loop reads it"},
{"rule":"EXP43-C","file":"lauxlib.c","line":1161,"verdict":"FP","confidence":"high","reason":"addbuff(b,b) copies address of b via memcpy; no restrict aliasing in underlying call"},
{"rule":"INT32-C","file":"lauxlib.c","line":1164,"verdict":"FP","confidence":"high","reason":"sizeof(buff) >= BUFSEEDB by construction of BUFSEED macro; no underflow"},
{"rule":"EXP05-C","file":"lauxlib.c","line":1164,"verdict":"FP","confidence":"high","reason":"b pointer is char* (non-const); cast is to same type; no const violation"},
{"rule":"INT14-C","file":"lauxlib.c","line":1167,"verdict":"FP","confidence":"high","reason":"Intentional seed mixing with bitwise ops on unsigned int; no readability defect"},
{"rule":"FIO50-C","file":"lauxlib.c","line":1167,"verdict":"FP","confidence":"high","reason":"res is unsigned int not a FILE stream; sqc misidentified variable type"},
{"rule":"FIO50-C","file":"lauxlib.c","line":1167,"verdict":"FP","confidence":"high","reason":"res is unsigned int not a FILE stream; sqc misidentified variable type"},
{"rule":"ARR00-C","file":"lauxlib.c","line":1167,"verdict":"FP","confidence":"high","reason":"buff[] filled by addbuff calls before loop reads it; not truly uninitialized"},
{"rule":"DCL31-C","file":"lauxlib.c","line":1187,"verdict":"FP","confidence":"high","reason":"lua_atpanic declared in lua.h; sqc missed the include"},
{"rule":"EXP43-C","file":"lauxlib.c","line":1188,"verdict":"FP","confidence":"high","reason":"lua_setwarnf(L, warnfon, L) stores L and ud separately; no restrict aliasing"},
{"rule":"DCL30-C","file":"lauxlib.c","line":1190,"verdict":"FP","confidence":"high","reason":"L from lua_newstate is heap-allocated; not a C automatic-storage local"},
{"rule":"API00-C","file":"lauxlib.c","line":1194,"verdict":"FP","confidence":"high","reason":"L is required LUALIB_API parameter; caller contract"},
{"rule":"DCL15-C","file":"lauxlib.c","line":1194,"verdict":"FP","confidence":"high","reason":"LUALIB_API public symbol declared in lauxlib.h"},
{"rule":"DCL13-C","file":"ldo.c","line":81,"verdict":"FP","confidence":"high","reason":"Function pointer signature must match; const cannot be added to lua_State*"},
{"rule":"DCL13-C","file":"ldo.c","line":81,"verdict":"FP","confidence":"high","reason":"Function pointer signature must match; const advisory on callback param"},
{"rule":"DCL13-C","file":"ldo.c","line":81,"verdict":"FP","confidence":"high","reason":"Function pointer signature must match; const advisory on callback param"},
{"rule":"PRE02-C","file":"ldo.c","line":99,"verdict":"FP","confidence":"high","reason":"LUAI_TRY is a statement macro; outer parenthesization would be syntactically wrong"},
{"rule":"PRE02-C","file":"ldo.c","line":105,"verdict":"FP","confidence":"high","reason":"LUAI_TRY is a statement macro; outer parenthesization would be syntactically wrong"},
{"rule":"API00-C","file":"ldo.c","line":112,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller (luaD_throw) contract"},
{"rule":"API00-C","file":"ldo.c","line":125,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"MEM05-C","file":"ldo.c","line":125,"verdict":"FP","confidence":"high","reason":"luaD_throw recursion is depth-1 (re-throw to main thread); not unbounded"},
{"rule":"MSC04-C","file":"ldo.c","line":125,"verdict":"FP","confidence":"high","reason":"luaD_throw direct recursion is bounded depth-1; not a real cycle risk"},
{"rule":"MSC37-C","file":"ldo.c","line":125,"verdict":"FP","confidence":"high","reason":"luaD_throw is l_noret; all paths call longjmp/abort; no actual fall-off"},
{"rule":"DCL00-C","file":"ldo.c","line":131,"verdict":"FP","confidence":"high","reason":"Advisory const on local variable g; not a defect"},
{"rule":"ERR05-C","file":"ldo.c","line":144,"verdict":"FP","confidence":"high","reason":"abort() is documented last-resort for unprotected Lua panic; correct behavior"},
{"rule":"API00-C","file":"ldo.c","line":150,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"MSC37-C","file":"ldo.c","line":150,"verdict":"FP","confidence":"high","reason":"luaD_throwbaselevel is l_noret; ends in luaD_throw which never returns"},
{"rule":"API00-C","file":"ldo.c","line":160,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":160,"verdict":"FP","confidence":"high","reason":"ud is required function parameter; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":215,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"MSC37-C","file":"ldo.c","line":215,"verdict":"FP","confidence":"high","reason":"luaD_errerr is l_noret; ends in luaD_throw which never returns"},
{"rule":"MSC04-C","file":"ldo.c","line":228,"verdict":"FP","confidence":"high","reason":"Indirect recursion cycle through GC/error/stack is bounded by LUAI_MAXCCALLS"},
{"rule":"MSC37-C","file":"ldo.c","line":228,"verdict":"FP","confidence":"high","reason":"luaD_checkminstack always returns int on both branches; no real fall-off"},
{"rule":"API00-C","file":"ldo.c","line":330,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":330,"verdict":"FP","confidence":"high","reason":"newsize is checked by lua_assert; integer overflow not a real issue here"},
{"rule":"MEM30-C","file":"ldo.c","line":341,"verdict":"FP","confidence":"high","reason":"STRICT_ADDRESS path converts pointers to offsets before realloc; oldstack not dereferenced after free"},
{"rule":"MEM30-C","file":"ldo.c","line":343,"verdict":"FP","confidence":"high","reason":"L is the lua_State not the reallocated stack; L is never freed here"},
{"rule":"MEM30-C","file":"ldo.c","line":343,"verdict":"FP","confidence":"high","reason":"correctstack called with oldstack for offset arithmetic, not dereference"},
{"rule":"MEM30-C","file":"ldo.c","line":345,"verdict":"FP","confidence":"high","reason":"L is the lua_State not the reallocated stack; never freed here"},
{"rule":"MEM30-C","file":"ldo.c","line":349,"verdict":"FP","confidence":"high","reason":"correctstack called with oldstack for pointer-difference arithmetic only"},
{"rule":"API00-C","file":"ldo.c","line":361,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"MSC04-C","file":"ldo.c","line":361,"verdict":"FP","confidence":"high","reason":"Indirect recursion through error/GC bounded by LUAI_MAXCCALLS"},
{"rule":"INT14-C","file":"ldo.c","line":373,"verdict":"FP","confidence":"high","reason":"Intentional bitshift for stack growth arithmetic (1.5x); standard Lua idiom"},
{"rule":"INT13-C","file":"ldo.c","line":373,"verdict":"FP","confidence":"high","reason":"size is positive int; right-shift of positive signed int is well-defined on all Lua targets"},
{"rule":"MEM30-C","file":"ldo.c","line":386,"verdict":"FP","confidence":"high","reason":"luaD_reallocstack does not free L; L is the lua_State pointer, not the stack"},
{"rule":"DCL13-C","file":"ldo.c","line":395,"verdict":"FP","confidence":"high","reason":"Advisory const; function signature matches internal usage pattern"},
{"rule":"API00-C","file":"ldo.c","line":419,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"MEM30-C","file":"ldo.c","line":430,"verdict":"FP","confidence":"high","reason":"luaD_reallocstack does not free L; L is lua_State pointer, not the stack"},
{"rule":"API00-C","file":"ldo.c","line":441,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":478,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":478,"verdict":"FP","confidence":"high","reason":"ci is required non-NULL call info pointer; caller contract"},
{"rule":"INT14-C","file":"ldo.c","line":497,"verdict":"FP","confidence":"high","reason":"Intentional bit manipulation on callstatus flags; standard Lua VM idiom"},
{"rule":"INT14-C","file":"ldo.c","line":503,"verdict":"FP","confidence":"high","reason":"Intentional pointer arithmetic on StkId; not bitwise/arithmetic confusion"},
{"rule":"EXP30-C","file":"ldo.c","line":511,"verdict":"FP","confidence":"high","reason":"ci = ci->previous in if-condition is intentional iteration idiom; well-sequenced"},
{"rule":"EXP45-C","file":"ldo.c","line":511,"verdict":"FP","confidence":"high","reason":"Assignment-in-if is intentional iteration; != NULL comparison follows"},
{"rule":"MSC04-C","file":"ldo.c","line":525,"verdict":"FP","confidence":"high","reason":"Indirect recursion through VM call cycle bounded by LUAI_MAXCCALLS"},
{"rule":"INT14-C","file":"ldo.c","line":535,"verdict":"FP","confidence":"high","reason":"Intentional bitwise operations on callstatus field; Lua VM idiom"},
{"rule":"INT14-C","file":"ldo.c","line":537,"verdict":"FP","confidence":"high","reason":"CIST_CCMT is a bit-field constant; bitwise ops intentional"},
{"rule":"API00-C","file":"ldo.c","line":542,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":542,"verdict":"FP","confidence":"high","reason":"wanted is a count parameter; no overflow concern in stack context"},
{"rule":"DCL15-C","file":"ldo.c","line":542,"verdict":"FP","confidence":"high","reason":"l_sinline function used internally; DCL15 advisory FP"},
{"rule":"DCL19-C","file":"ldo.c","line":542,"verdict":"FP","confidence":"high","reason":"genmoveresults is internal helper; DCL19 advisory FP"},
{"rule":"API00-C","file":"ldo.c","line":563,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"DCL15-C","file":"ldo.c","line":563,"verdict":"FP","confidence":"high","reason":"l_sinline function used internally; DCL15 advisory FP"},
{"rule":"DCL19-C","file":"ldo.c","line":563,"verdict":"FP","confidence":"high","reason":"moveresults is internal helper; DCL19 advisory FP"},
{"rule":"MSC04-C","file":"ldo.c","line":563,"verdict":"FP","confidence":"high","reason":"Indirect recursion through luaF_close/callclose bounded by LUAI_MAXCCALLS"},
{"rule":"API00-C","file":"ldo.c","line":607,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":607,"verdict":"FP","confidence":"high","reason":"ci is required non-NULL call info; caller contract"},
{"rule":"MSC04-C","file":"ldo.c","line":607,"verdict":"FP","confidence":"high","reason":"Indirect recursion bounded by LUAI_MAXCCALLS"},
{"rule":"PRE00-C","file":"ldo.c","line":621,"verdict":"FP","confidence":"high","reason":"next_ci(L) used with plain variable L; no side-effecting argument"},
{"rule":"PRE01-C","file":"ldo.c","line":621,"verdict":"FP","confidence":"high","reason":"L is a plain variable at call sites; no precedence hazard"},
{"rule":"PRE12-C","file":"ldo.c","line":621,"verdict":"FP","confidence":"high","reason":"L is a plain variable at call sites; no multiple-evaluation hazard"},
{"rule":"API00-C","file":"ldo.c","line":630,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"DCL15-C","file":"ldo.c","line":630,"verdict":"FP","confidence":"high","reason":"l_sinline function used internally; DCL15 advisory FP"},
{"rule":"DCL30-C","file":"ldo.c","line":637,"verdict":"FP","confidence":"high","reason":"ci points into L->ci chain (heap-allocated CallInfo list); not a C local"},
{"rule":"API00-C","file":"ldo.c","line":644,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"DCL15-C","file":"ldo.c","line":644,"verdict":"FP","confidence":"high","reason":"l_sinline function used internally; DCL15 advisory FP"},
{"rule":"DCL19-C","file":"ldo.c","line":644,"verdict":"FP","confidence":"high","reason":"precallC is internal helper; DCL19 advisory FP"},
{"rule":"MSC04-C","file":"ldo.c","line":644,"verdict":"FP","confidence":"high","reason":"Indirect recursion bounded by LUAI_MAXCCALLS"},
{"rule":"INT14-C","file":"ldo.c","line":650,"verdict":"FP","confidence":"high","reason":"Intentional bit-field manipulation on L->nCcalls; Lua VM idiom"},
{"rule":"EXP34-C","file":"ldo.c","line":651,"verdict":"FP","confidence":"high","reason":"ci from prepCallInfo always non-NULL (longjmps if CI list extension fails)"},
{"rule":"API00-C","file":"ldo.c","line":671,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":671,"verdict":"FP","confidence":"high","reason":"ci is required non-NULL call info; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":671,"verdict":"FP","confidence":"high","reason":"narg1 is a count parameter; no overflow concern"},
{"rule":"API00-C","file":"ldo.c","line":671,"verdict":"FP","confidence":"high","reason":"delta is a small integer offset; no overflow concern"},
{"rule":"MSC04-C","file":"ldo.c","line":671,"verdict":"FP","confidence":"high","reason":"Indirect recursion bounded by LUAI_MAXCCALLS"},
{"rule":"MSC37-C","file":"ldo.c","line":671,"verdict":"FP","confidence":"high","reason":"All switch branches either return or fall to final return -1; no real fall-off"},
{"rule":"API00-C","file":"ldo.c","line":717,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":717,"verdict":"FP","confidence":"high","reason":"nresults is a count parameter; no overflow concern"},
{"rule":"MSC04-C","file":"ldo.c","line":717,"verdict":"FP","confidence":"high","reason":"Indirect recursion bounded by LUAI_MAXCCALLS"},
{"rule":"MSC37-C","file":"ldo.c","line":717,"verdict":"FP","confidence":"high","reason":"All switch branches handled; C/Lua paths return; no real fall-off"},
{"rule":"EXP34-C","file":"ldo.c","line":736,"verdict":"FP","confidence":"high","reason":"ci from prepCallInfo always non-NULL (longjmps if CI list extension fails)"},
{"rule":"API00-C","file":"ldo.c","line":759,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"DCL15-C","file":"ldo.c","line":759,"verdict":"FP","confidence":"high","reason":"l_sinline function used internally; DCL15 advisory FP"},
{"rule":"DCL19-C","file":"ldo.c","line":759,"verdict":"FP","confidence":"high","reason":"ccall is internal helper; DCL19 advisory FP"},
{"rule":"MSC04-C","file":"ldo.c","line":759,"verdict":"FP","confidence":"high","reason":"Indirect recursion bounded by LUAI_MAXCCALLS"},
{"rule":"EXP34-C","file":"ldo.c","line":767,"verdict":"FP","confidence":"high","reason":"ci from luaD_precall may be NULL (C function path); code checks != NULL first"},
{"rule":"API00-C","file":"ldo.c","line":777,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"MSC04-C","file":"ldo.c","line":777,"verdict":"FP","confidence":"high","reason":"Indirect recursion bounded by LUAI_MAXCCALLS"},
{"rule":"API00-C","file":"ldo.c","line":785,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"MSC04-C","file":"ldo.c","line":785,"verdict":"FP","confidence":"high","reason":"Indirect recursion bounded by LUAI_MAXCCALLS"},
{"rule":"DCL13-C","file":"ldo.c","line":886,"verdict":"FP","confidence":"high","reason":"Advisory const; function pointer type must match callback signature"},
{"rule":"DCL30-C","file":"ldo.c","line":890,"verdict":"FP","confidence":"high","reason":"ci points into L->ci chain (heap-allocated CallInfo list); not a C local"},
{"rule":"DCL13-C","file":"ldo.c","line":918,"verdict":"FP","confidence":"high","reason":"Advisory const; ud is a void* callback data pointer"},
{"rule":"API00-C","file":"ldo.c","line":968,"verdict":"FP","confidence":"high","reason":"from is optional (NULL allowed; handled at line 980)"},
{"rule":"API00-C","file":"ldo.c","line":968,"verdict":"FP","confidence":"high","reason":"nresults is output pointer; NULL would crash but caller contract requires non-NULL"},
{"rule":"API00-C","file":"ldo.c","line":968,"verdict":"FP","confidence":"high","reason":"nargs is a count parameter; validated by api_checkpop"},
{"rule":"DCL15-C","file":"ldo.c","line":968,"verdict":"FP","confidence":"high","reason":"LUA_API public symbol declared in lua.h"},
{"rule":"API00-C","file":"ldo.c","line":1003,"verdict":"FP","confidence":"high","reason":"L is required LUA_API parameter; caller contract"},
{"rule":"DCL15-C","file":"ldo.c","line":1003,"verdict":"FP","confidence":"high","reason":"LUA_API public symbol declared in lua.h"},
{"rule":"API00-C","file":"ldo.c","line":1008,"verdict":"FP","confidence":"high","reason":"L is required LUA_API parameter; caller contract"},
{"rule":"DCL15-C","file":"ldo.c","line":1008,"verdict":"FP","confidence":"high","reason":"LUA_API public symbol declared in lua.h"},
{"rule":"DCL13-C","file":"ldo.c","line":1051,"verdict":"FP","confidence":"high","reason":"Advisory const; ud is a void* callback data pointer"},
{"rule":"API00-C","file":"ldo.c","line":1061,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"MSC37-C","file":"ldo.c","line":1061,"verdict":"FP","confidence":"high","reason":"luaD_closeprotected has infinite for loop that returns on LUA_OK; no fall-off"},
{"rule":"API00-C","file":"ldo.c","line":1083,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":1083,"verdict":"FP","confidence":"high","reason":"u is required function parameter; caller contract"},
{"rule":"DCL13-C","file":"ldo.c","line":1129,"verdict":"FP","confidence":"high","reason":"Advisory const; ud is a void* callback data pointer"},
{"rule":"MEM31-C","file":"ldo.c","line":1137,"verdict":"FP","confidence":"high","reason":"anchor is GC-managed via Lua stack; deliberately not freed individually"},
{"rule":"EXP34-C","file":"ldo.c","line":1154,"verdict":"FP","confidence":"high","reason":"cl from luaU_undump/luaY_parser either returns valid closure or longjmps"},
{"rule":"API00-C","file":"ldo.c","line":1164,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":1164,"verdict":"FP","confidence":"high","reason":"anchor is required non-NULL Table pointer; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":1164,"verdict":"FP","confidence":"high","reason":"obj is required non-NULL GCObject pointer; caller contract"},
{"rule":"EXP30-C","file":"ldo.c","line":1166,"verdict":"FP","confidence":"high","reason":"luaH_set args evaluate L->top.p-1 twice as rvalue reads; no unsequenced modification"},
{"rule":"API00-C","file":"ldo.c","line":1173,"verdict":"FP","confidence":"high","reason":"L is required internal parameter; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":1173,"verdict":"FP","confidence":"high","reason":"z is required ZIO pointer; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":1173,"verdict":"FP","confidence":"high","reason":"name is required chunk name; caller contract"},
{"rule":"API00-C","file":"ldo.c","line":1173,"verdict":"FP","confidence":"high","reason":"mode is optional (NULL handled: defaults to 'bt' in f_parser)"},
{"rule":"DCL13-C","file":"ldo.c","line":1173,"verdict":"FP","confidence":"high","reason":"Advisory const on ZIO pointer; function signature must match ZIO API"}
],
"fns": [],
"files_reviewed": ["lauxlib.c", "ldo.c"],
"files_clean": ["lauxlib.c", "ldo.c"],
"summary": {
"ground_truth": 0,
"tp": 0,
"fp": 313,
"fn": 0
}
}