diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2022-02-20 21:08:54 -0600 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2022-05-01 17:05:53 -0500 |
commit | aad9e708a3accbc4a94014098568459503bf6f24 (patch) | |
tree | 784c1b44beac27cbb9ba8c1c71e96e6a30a3ba18 /user/lua5.3/CVE-2020-24370.patch | |
parent | a9206eeeb178baef627c07767b85152aefb9d21c (diff) | |
download | packages-aad9e708a3accbc4a94014098568459503bf6f24.tar.gz packages-aad9e708a3accbc4a94014098568459503bf6f24.tar.bz2 packages-aad9e708a3accbc4a94014098568459503bf6f24.tar.xz packages-aad9e708a3accbc4a94014098568459503bf6f24.zip |
system/lua5.3 (and rdeps): Move to user/
Diffstat (limited to 'user/lua5.3/CVE-2020-24370.patch')
-rw-r--r-- | user/lua5.3/CVE-2020-24370.patch | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/user/lua5.3/CVE-2020-24370.patch b/user/lua5.3/CVE-2020-24370.patch new file mode 100644 index 000000000..0bfce24b1 --- /dev/null +++ b/user/lua5.3/CVE-2020-24370.patch @@ -0,0 +1,36 @@ +From b5bc89846721375fe30772eb8c5ab2786f362bf9 Mon Sep 17 00:00:00 2001 +From: Roberto Ierusalimschy <roberto@inf.puc-rio.br> +Date: Mon, 3 Aug 2020 16:25:28 -0300 +Subject: [PATCH] Fixed bug: Negation overflow in getlocal/setlocal + +--- + ldebug.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/ldebug.c b/ldebug.c +index e1389296e..bb0e1d4ac 100644 +--- a/src/ldebug.c ++++ b/src/ldebug.c +@@ -133,10 +133,11 @@ static const char *upvalname (Proto *p, int uv) { + + static const char *findvararg (CallInfo *ci, int n, StkId *pos) { + int nparams = clLvalue(ci->func)->p->numparams; +- if (n >= cast_int(ci->u.l.base - ci->func) - nparams) ++ int nvararg = cast_int(ci->u.l.base - ci->func) - nparams; ++ if (n <= -nvararg) + return NULL; /* no such vararg */ + else { +- *pos = ci->func + nparams + n; ++ *pos = ci->func + nparams - n; + return "(*vararg)"; /* generic name for any vararg */ + } + } +@@ -148,7 +149,7 @@ static const char *findlocal (lua_State *L, CallInfo *ci, int n, + StkId base; + if (isLua(ci)) { + if (n < 0) /* access to vararg values? */ +- return findvararg(ci, -n, pos); ++ return findvararg(ci, n, pos); + else { + base = ci->u.l.base; + name = luaF_getlocalname(ci_func(ci)->p, n, currentpc(ci)); |