lua5.1: fix broken source fetch (#40748)

The upstream src URL for the patch appears to no longer exist. Per discussion in
https://github.com/NixOS/nixpkgs/issues/39927, the upstream URL is not stable,
so this commit inlines the patch in the nixpkgs src tree.
This commit is contained in:
Benjamin Hipple 2018-05-19 11:30:04 -04:00 committed by xeji
parent 28c1c0ab26
commit 17f50018c0
2 changed files with 22 additions and 6 deletions

View File

@ -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;

View File

@ -20,12 +20,7 @@ stdenv.mkDerivation rec {
buildInputs = [ readline ]; buildInputs = [ readline ];
patches = (if stdenv.isDarwin then [ ./5.1.darwin.patch ] else [ dsoPatch ]) patches = (if stdenv.isDarwin then [ ./5.1.darwin.patch ] else [ dsoPatch ])
++ [(fetchpatch { ++ [ ./5.1.0004-Fix-stack-overflow-in-vararg-functions.patch ];
name = "CVE-2014-5461.patch";
url = "http://anonscm.debian.org/cgit/pkg-lua/lua5.1.git/plain/debian/patches/"
+ "0004-Fix-stack-overflow-in-vararg-functions.patch?id=b75a2014db2ad65683521f7bb295bfa37b48b389";
sha256 = "05i5vh53d9i6dy11ibg9i9qpwz5hdm0s8bkx1d9cfcvy80cm4c7f";
})];
configurePhase = configurePhase =
if stdenv.isDarwin if stdenv.isDarwin