aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/interpreters/lua-5/CVE-2014-5461.patch
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/interpreters/lua-5/CVE-2014-5461.patch')
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/CVE-2014-5461.patch21
1 files changed, 21 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/CVE-2014-5461.patch b/nixpkgs/pkgs/development/interpreters/lua-5/CVE-2014-5461.patch
new file mode 100644
index 00000000000..31d3b8bdee7
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/lua-5/CVE-2014-5461.patch
@@ -0,0 +1,21 @@
+From: Enrico Tassi <gareuselesinge@debian.org>
+Date: Tue, 26 Aug 2014 16:20:55 +0200
+Subject: Fix stack overflow in vararg functions
+
+---
+ src/ldo.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/ldo.c b/src/ldo.c
+index d1bf786..30333bf 100644
+--- a/src/ldo.c
++++ b/src/ldo.c
+@@ -274,7 +274,7 @@ int luaD_precall (lua_State *L, StkId func, int nresults) {
+ CallInfo *ci;
+ StkId st, base;
+ Proto *p = cl->p;
+- luaD_checkstack(L, p->maxstacksize);
++ luaD_checkstack(L, p->maxstacksize + p->numparams);
+ func = restorestack(L, funcr);
+ if (!p->is_vararg) { /* no varargs? */
+ base = func + 1;