diff options
Diffstat (limited to 'libraries/lua-md5/3ee1414.patch')
-rw-r--r-- | libraries/lua-md5/3ee1414.patch | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libraries/lua-md5/3ee1414.patch b/libraries/lua-md5/3ee1414.patch new file mode 100644 index 000000000000..91dd4a13b6b2 --- /dev/null +++ b/libraries/lua-md5/3ee1414.patch @@ -0,0 +1,22 @@ +commit 3ee141422f30f45d841bb21be90474dd1fb68a67 +Author: Tomas Guisasola <tomasguisasola@gmail.com> +Date: Mon Sep 23 11:26:01 2013 -0300 + + Bug correction on upvalues management (thanks to Philipp Janda). + +diff --git a/src/compat-5.2.c b/src/compat-5.2.c +index f54caa2..ce57660 100644 +--- a/src/compat-5.2.c ++++ b/src/compat-5.2.c +@@ -12,9 +12,9 @@ void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) { + int i; + lua_pushstring(L, l->name); + for (i = 0; i < nup; i++) /* copy upvalues to the top */ +- lua_pushvalue(L, -nup); ++ lua_pushvalue(L, -(nup + 1)); + lua_pushcclosure(L, l->func, nup); /* closure with those upvalues */ +- lua_settable(L, -3); ++ lua_settable(L, -(nup + 3)); /* table must be below the upvalues, the name and the closure */ + } + lua_pop(L, nup); /* remove upvalues */ + } |