]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
Reject negative getfenv()/setfenv() levels to prevent compiler warning.
authorMike Pall <mike>
Mon, 13 Jan 2025 15:16:27 +0000 (16:16 +0100)
committerMike Pall <mike>
Mon, 13 Jan 2025 15:16:27 +0000 (16:16 +0100)
Thanks to Sergey Kaplun. #1329

src/lib_base.c

index 5190f3fe405d303deec33bc49855fa32f66efff8..7683163c597083e00506f47e4914083a55e511ed 100644 (file)
@@ -141,6 +141,8 @@ LJLIB_CF(getfenv)
   cTValue *o = L->base;
   if (!(o < L->top && tvisfunc(o))) {
     int level = lj_lib_optint(L, 1, 1);
+    if (level < 0)
+      lj_err_arg(L, 1, LJ_ERR_INVLVL);
     o = lj_debug_frame(L, level, &level);
     if (o == NULL)
       lj_err_arg(L, 1, LJ_ERR_INVLVL);
@@ -162,6 +164,8 @@ LJLIB_CF(setfenv)
       setgcref(L->env, obj2gco(t));
       return 0;
     }
+    if (level < 0)
+      lj_err_arg(L, 1, LJ_ERR_INVLVL);
     o = lj_debug_frame(L, level, &level);
     if (o == NULL)
       lj_err_arg(L, 1, LJ_ERR_INVLVL);