aboutsummaryrefslogtreecommitdiff
path: root/bugs
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2007-11-28 16:27:38 -0200
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2007-11-28 16:27:38 -0200
commitabcc124df05fe19470abdb9d665160a7e3b01495 (patch)
treea1ee289114ba8105800d24c1b08a3725b8778690 /bugs
parentb4164a9aa7760be7d66f90d6af5093b9ff26fb0c (diff)
downloadlua-abcc124df05fe19470abdb9d665160a7e3b01495.tar.gz
lua-abcc124df05fe19470abdb9d665160a7e3b01495.tar.bz2
lua-abcc124df05fe19470abdb9d665160a7e3b01495.zip
BUG: lua_setfenv may crash if called over an invalid object
Diffstat (limited to 'bugs')
-rw-r--r--bugs21
1 files changed, 21 insertions, 0 deletions
diff --git a/bugs b/bugs
index ed2eb666..fe6b2b81 100644
--- a/bugs
+++ b/bugs
@@ -1595,6 +1595,27 @@ ltablib.c:
1595} 1595}
1596 1596
1597Bug{ 1597Bug{
1598what = [[lua_setfenv may crash if called over an invalid object]],
1599report = [[Mike Pall, on 11/2007]],
1600since = [[5.1]],
1601example = [[
1602> debug.setfenv(3, {})
1603]],
1604patch = [[
1605lapi.c:
1606@@ -749,7 +749,7 @@
1607 res = 0;
1608 break;
1609 }
1610- luaC_objbarrier(L, gcvalue(o), hvalue(L->top - 1));
1611+ if (res) luaC_objbarrier(L, gcvalue(o), hvalue(L->top - 1));
1612 L->top--;
1613 lua_unlock(L);
1614 return res;
1615]],
1616}
1617
1618Bug{
1598what = [[ ]], 1619what = [[ ]],
1599report = [[ , on ]], 1620report = [[ , on ]],
1600since = [[i ]], 1621since = [[i ]],