summaryrefslogtreecommitdiff
path: root/repo/system/lua
diff options
context:
space:
mode:
authordavidovski <david@davidovski.xyz>2022-05-22 17:47:09 +0100
committerdavidovski <david@davidovski.xyz>2022-05-22 17:47:09 +0100
commit79062a39e9bcb9731adbacd0bd9bcd0b59d19d0a (patch)
treef67d3b58f0c4387e7248967c491442afcee0cd06 /repo/system/lua
parent2f6c333a5bcef47d9fee59f180fa827cb24290d4 (diff)
fixes to allow for full build
Diffstat (limited to 'repo/system/lua')
-rw-r--r--repo/system/lua/CVE-2022-28805.patch336
-rw-r--r--repo/system/lua/extern-c-for-cpp.patch336
-rw-r--r--repo/system/lua/fix-double-free.patch402
-rw-r--r--repo/system/lua/lua-5.4.4-shared_library-1.patch78
-rw-r--r--repo/system/lua/lua.xibuild8
5 files changed, 1158 insertions, 2 deletions
diff --git a/repo/system/lua/CVE-2022-28805.patch b/repo/system/lua/CVE-2022-28805.patch
new file mode 100644
index 0000000..95c66fc
--- /dev/null
+++ b/repo/system/lua/CVE-2022-28805.patch
@@ -0,0 +1,336 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+<title>CVE-2022-28805.patch « lua5.4 « main - aports - Alpine packages build scripts
+</title>
+<meta name='generator' content='cgit v1.2.3'/>
+<meta name='robots' content='index, nofollow'/>
+<link rel='stylesheet' type='text/css' href='/cgit.css'/>
+<link rel='shortcut icon' href='//alpinelinux.org/alpine-logo.ico'/>
+<link rel='alternate' title='Atom feed' href='http://git.alpinelinux.org/aports/atom/main/lua5.4/CVE-2022-28805.patch?h=master' type='application/atom+xml'/>
+<link rel='vcs-git' href='https://git.alpinelinux.org/aports' title='aports Git repository'/>
+</head>
+<body>
+<div id='cgit'><table id='header'>
+<tr>
+<td class='logo' rowspan='2'><a href='/'><img src='//wiki.alpinelinux.org/images/alogo.png' alt='cgit logo'/></a></td>
+<td class='main'><a href='/'>index</a> : <a title='aports' href='/aports/'>aports</a></td><td class='form'><form method='get'>
+<select name='h' onchange='this.form.submit();'>
+<option value='1.10-stable'>1.10-stable</option>
+<option value='1.9'>1.9</option>
+<option value='2.0-stable'>2.0-stable</option>
+<option value='2.1-stable'>2.1-stable</option>
+<option value='2.2-stable'>2.2-stable</option>
+<option value='2.3-stable'>2.3-stable</option>
+<option value='2.4-stable'>2.4-stable</option>
+<option value='2.5-stable'>2.5-stable</option>
+<option value='2.6-stable'>2.6-stable</option>
+<option value='2.7-stable'>2.7-stable</option>
+<option value='3.0-stable'>3.0-stable</option>
+<option value='3.1-stable'>3.1-stable</option>
+<option value='3.10-stable'>3.10-stable</option>
+<option value='3.11-stable'>3.11-stable</option>
+<option value='3.12-stable'>3.12-stable</option>
+<option value='3.13-stable'>3.13-stable</option>
+<option value='3.14-stable'>3.14-stable</option>
+<option value='3.15-stable'>3.15-stable</option>
+<option value='3.2-stable'>3.2-stable</option>
+<option value='3.3-stable'>3.3-stable</option>
+<option value='3.4-stable'>3.4-stable</option>
+<option value='3.5-stable'>3.5-stable</option>
+<option value='3.6-stable'>3.6-stable</option>
+<option value='3.7-stable'>3.7-stable</option>
+<option value='3.8-stable'>3.8-stable</option>
+<option value='3.9-stable'>3.9-stable</option>
+<option value='fs-upgrade-1.10.7'>fs-upgrade-1.10.7</option>
+<option value='libcgroup'>libcgroup</option>
+<option value='master' selected='selected'>master</option>
+<option value='nuspell'>nuspell</option>
+<option value='patches/3527'>patches/3527</option>
+<option value='patches/3530'>patches/3530</option>
+<option value='patches/3531'>patches/3531</option>
+<option value='patches/3534'>patches/3534</option>
+<option value='patches/3535'>patches/3535</option>
+<option value='patches/3538'>patches/3538</option>
+<option value='patches/3539'>patches/3539</option>
+<option value='patches/3540'>patches/3540</option>
+<option value='patches/3551'>patches/3551</option>
+<option value='patches/3556'>patches/3556</option>
+<option value='patches/3558'>patches/3558</option>
+<option value='patches/3559'>patches/3559</option>
+<option value='patches/3562'>patches/3562</option>
+<option value='patches/3563'>patches/3563</option>
+<option value='patches/3564'>patches/3564</option>
+<option value='patches/3565'>patches/3565</option>
+<option value='patches/3567'>patches/3567</option>
+<option value='patches/3568'>patches/3568</option>
+<option value='patches/3569'>patches/3569</option>
+<option value='patches/3574'>patches/3574</option>
+<option value='patches/3575'>patches/3575</option>
+<option value='patches/3576'>patches/3576</option>
+<option value='patches/3577'>patches/3577</option>
+<option value='patches/3582'>patches/3582</option>
+<option value='patches/3584'>patches/3584</option>
+<option value='patches/3590'>patches/3590</option>
+<option value='patches/3592'>patches/3592</option>
+<option value='patches/3594'>patches/3594</option>
+<option value='patches/3598'>patches/3598</option>
+<option value='patches/3599'>patches/3599</option>
+<option value='patches/3601'>patches/3601</option>
+<option value='patches/3603'>patches/3603</option>
+<option value='patches/3604'>patches/3604</option>
+<option value='patches/3606'>patches/3606</option>
+<option value='patches/3607'>patches/3607</option>
+<option value='patches/3608'>patches/3608</option>
+<option value='patches/3610'>patches/3610</option>
+<option value='patches/3612'>patches/3612</option>
+<option value='patches/3613'>patches/3613</option>
+<option value='patches/3615'>patches/3615</option>
+<option value='patches/3616'>patches/3616</option>
+<option value='patches/3618'>patches/3618</option>
+<option value='patches/3621'>patches/3621</option>
+<option value='patches/3622'>patches/3622</option>
+<option value='patches/3624'>patches/3624</option>
+<option value='patches/3627'>patches/3627</option>
+<option value='patches/3632'>patches/3632</option>
+<option value='patches/3633'>patches/3633</option>
+<option value='patches/3635'>patches/3635</option>
+<option value='patches/3636'>patches/3636</option>
+<option value='patches/3646'>patches/3646</option>
+<option value='patches/3654'>patches/3654</option>
+<option value='patches/3656'>patches/3656</option>
+<option value='patches/3662'>patches/3662</option>
+<option value='patches/3666'>patches/3666</option>
+<option value='patches/3670'>patches/3670</option>
+<option value='patches/3671'>patches/3671</option>
+<option value='patches/3675'>patches/3675</option>
+<option value='patches/3687'>patches/3687</option>
+<option value='patches/3690'>patches/3690</option>
+<option value='patches/3691'>patches/3691</option>
+<option value='patches/3692'>patches/3692</option>
+<option value='patches/3697'>patches/3697</option>
+<option value='patches/3706'>patches/3706</option>
+<option value='patches/3707'>patches/3707</option>
+<option value='patches/3715'>patches/3715</option>
+<option value='patches/3721'>patches/3721</option>
+<option value='patches/3722'>patches/3722</option>
+<option value='patches/3724'>patches/3724</option>
+<option value='patches/3731'>patches/3731</option>
+<option value='patches/3756'>patches/3756</option>
+<option value='patches/3764'>patches/3764</option>
+<option value='patches/3767'>patches/3767</option>
+<option value='patches/3770'>patches/3770</option>
+<option value='patches/3771'>patches/3771</option>
+<option value='patches/3774'>patches/3774</option>
+<option value='patches/3775'>patches/3775</option>
+<option value='patches/3777'>patches/3777</option>
+<option value='patches/3779'>patches/3779</option>
+<option value='patches/3787'>patches/3787</option>
+<option value='patches/3788'>patches/3788</option>
+<option value='patches/3789'>patches/3789</option>
+<option value='patches/3793'>patches/3793</option>
+<option value='patches/3796'>patches/3796</option>
+<option value='patches/3797'>patches/3797</option>
+<option value='patches/3798'>patches/3798</option>
+<option value='patches/3799'>patches/3799</option>
+<option value='patches/3800'>patches/3800</option>
+<option value='patches/3802'>patches/3802</option>
+<option value='patches/3803'>patches/3803</option>
+<option value='patches/3804'>patches/3804</option>
+<option value='patches/3805'>patches/3805</option>
+<option value='patches/3808'>patches/3808</option>
+<option value='patches/3813'>patches/3813</option>
+<option value='patches/3816'>patches/3816</option>
+<option value='patches/3818'>patches/3818</option>
+<option value='patches/3820'>patches/3820</option>
+<option value='patches/3821'>patches/3821</option>
+<option value='patches/3822'>patches/3822</option>
+<option value='patches/3823'>patches/3823</option>
+<option value='patches/3825'>patches/3825</option>
+<option value='patches/3827'>patches/3827</option>
+<option value='patches/3828'>patches/3828</option>
+<option value='patches/3829'>patches/3829</option>
+<option value='patches/3830'>patches/3830</option>
+<option value='patches/3831'>patches/3831</option>
+<option value='patches/3832'>patches/3832</option>
+<option value='patches/3833'>patches/3833</option>
+<option value='patches/3835'>patches/3835</option>
+<option value='patches/3836'>patches/3836</option>
+<option value='patches/3837'>patches/3837</option>
+<option value='patches/3838'>patches/3838</option>
+<option value='patches/3839'>patches/3839</option>
+<option value='patches/3843'>patches/3843</option>
+<option value='patches/3845'>patches/3845</option>
+<option value='patches/3846'>patches/3846</option>
+<option value='patches/3847'>patches/3847</option>
+<option value='patches/3850'>patches/3850</option>
+<option value='patches/3852'>patches/3852</option>
+<option value='patches/3853'>patches/3853</option>
+<option value='patches/3854'>patches/3854</option>
+<option value='patches/3855'>patches/3855</option>
+<option value='patches/3858'>patches/3858</option>
+<option value='patches/3861'>patches/3861</option>
+<option value='patches/3863'>patches/3863</option>
+<option value='patches/3864'>patches/3864</option>
+<option value='patches/3868'>patches/3868</option>
+<option value='patches/3869'>patches/3869</option>
+<option value='patches/3870'>patches/3870</option>
+<option value='patches/3871'>patches/3871</option>
+<option value='patches/3873'>patches/3873</option>
+<option value='patches/3878'>patches/3878</option>
+<option value='patches/3881'>patches/3881</option>
+<option value='patches/3882'>patches/3882</option>
+<option value='patches/3883'>patches/3883</option>
+<option value='patches/3885'>patches/3885</option>
+<option value='patches/3886'>patches/3886</option>
+<option value='patches/3887'>patches/3887</option>
+<option value='patches/3888'>patches/3888</option>
+<option value='patches/3890'>patches/3890</option>
+<option value='patches/3891'>patches/3891</option>
+<option value='patches/3892'>patches/3892</option>
+<option value='patches/3895'>patches/3895</option>
+<option value='patches/3896'>patches/3896</option>
+<option value='patches/3897'>patches/3897</option>
+<option value='patches/3908'>patches/3908</option>
+<option value='patches/3909'>patches/3909</option>
+<option value='patches/3912'>patches/3912</option>
+<option value='patches/3913'>patches/3913</option>
+<option value='patches/3914'>patches/3914</option>
+<option value='patches/3916'>patches/3916</option>
+<option value='patches/3918'>patches/3918</option>
+<option value='patches/3920'>patches/3920</option>
+<option value='patches/3923'>patches/3923</option>
+<option value='patches/3927'>patches/3927</option>
+<option value='patches/3933'>patches/3933</option>
+<option value='patches/3934'>patches/3934</option>
+<option value='patches/3937'>patches/3937</option>
+<option value='patches/3941'>patches/3941</option>
+<option value='patches/3946'>patches/3946</option>
+<option value='patches/3947'>patches/3947</option>
+<option value='patches/3949'>patches/3949</option>
+<option value='patches/3950'>patches/3950</option>
+<option value='patches/3953'>patches/3953</option>
+<option value='patches/3954'>patches/3954</option>
+<option value='patches/3957'>patches/3957</option>
+<option value='patches/3958'>patches/3958</option>
+<option value='patches/3959'>patches/3959</option>
+<option value='patches/3963'>patches/3963</option>
+<option value='patches/3969'>patches/3969</option>
+<option value='patches/3970'>patches/3970</option>
+<option value='patches/3976'>patches/3976</option>
+<option value='patches/3977'>patches/3977</option>
+<option value='patches/3979'>patches/3979</option>
+<option value='patches/3980'>patches/3980</option>
+<option value='patches/3981'>patches/3981</option>
+<option value='patches/3987'>patches/3987</option>
+<option value='patches/3988'>patches/3988</option>
+<option value='patches/3989'>patches/3989</option>
+<option value='patches/3998'>patches/3998</option>
+<option value='patches/3999'>patches/3999</option>
+<option value='patches/4000'>patches/4000</option>
+<option value='patches/4001'>patches/4001</option>
+<option value='patches/4002'>patches/4002</option>
+<option value='patches/4008'>patches/4008</option>
+<option value='patches/4012'>patches/4012</option>
+<option value='patches/4013'>patches/4013</option>
+<option value='patches/4019'>patches/4019</option>
+<option value='patches/4021'>patches/4021</option>
+<option value='patches/4022'>patches/4022</option>
+<option value='patches/4026'>patches/4026</option>
+<option value='patches/4029'>patches/4029</option>
+<option value='patches/4030'>patches/4030</option>
+<option value='patches/4031'>patches/4031</option>
+<option value='patches/4033'>patches/4033</option>
+<option value='patches/4037'>patches/4037</option>
+<option value='patches/4040'>patches/4040</option>
+<option value='patches/4042'>patches/4042</option>
+<option value='patches/4045'>patches/4045</option>
+<option value='patches/4047'>patches/4047</option>
+<option value='patches/4058'>patches/4058</option>
+<option value='patches/4059'>patches/4059</option>
+<option value='patches/4060'>patches/4060</option>
+<option value='patches/4062'>patches/4062</option>
+<option value='patches/4063'>patches/4063</option>
+<option value='patches/4066'>patches/4066</option>
+<option value='patches/4067'>patches/4067</option>
+<option value='patches/4069'>patches/4069</option>
+<option value='patches/4070'>patches/4070</option>
+<option value='patches/4072'>patches/4072</option>
+<option value='patches/4073'>patches/4073</option>
+<option value='patches/4076'>patches/4076</option>
+<option value='patches/4078'>patches/4078</option>
+<option value='patches/4079'>patches/4079</option>
+<option value='patches/4080'>patches/4080</option>
+<option value='patches/4081'>patches/4081</option>
+<option value='py3-fonttools'>py3-fonttools</option>
+<option value='wlroots'>wlroots</option>
+</select> <input type='submit' value='switch'/></form></td></tr>
+<tr><td class='sub'>Alpine packages build scripts
+</td><td class='sub right'>uwsgi</td></tr></table>
+<table class='tabs'><tr><td>
+<a href='/aports/about/'>about</a><a href='/aports/'>summary</a><a href='/aports/refs/'>refs</a><a href='/aports/log/main/lua5.4/CVE-2022-28805.patch'>log</a><a class='active' href='/aports/tree/main/lua5.4/CVE-2022-28805.patch'>tree</a><a href='/aports/commit/main/lua5.4/CVE-2022-28805.patch'>commit</a><a href='/aports/diff/main/lua5.4/CVE-2022-28805.patch'>diff</a><a href='/aports/stats/main/lua5.4/CVE-2022-28805.patch'>stats</a></td><td class='form'><form class='right' method='get' action='/aports/log/main/lua5.4/CVE-2022-28805.patch'>
+<select name='qt'>
+<option value='grep'>log msg</option>
+<option value='author'>author</option>
+<option value='committer'>committer</option>
+<option value='range'>range</option>
+</select>
+<input class='txt' type='search' size='10' name='q' value=''/>
+<input type='submit' value='search'/>
+</form>
+</td></tr></table>
+<div class='path'>path: <a href='/aports/tree/'>root</a>/<a href='/aports/tree/main'>main</a>/<a href='/aports/tree/main/lua5.4'>lua5.4</a>/<a href='/aports/tree/main/lua5.4/CVE-2022-28805.patch'>CVE-2022-28805.patch</a></div><div class='content'>blob: b00fcc63f7c8ce53208dfc10c9c275f50ca8a8c9 (<a href='/aports/plain/main/lua5.4/CVE-2022-28805.patch'>plain</a>) (<a href='/aports/blame/main/lua5.4/CVE-2022-28805.patch'>blame</a>)
+<table summary='blob content' class='blob'>
+<tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a>
+<a id='n2' href='#n2'>2</a>
+<a id='n3' href='#n3'>3</a>
+<a id='n4' href='#n4'>4</a>
+<a id='n5' href='#n5'>5</a>
+<a id='n6' href='#n6'>6</a>
+<a id='n7' href='#n7'>7</a>
+<a id='n8' href='#n8'>8</a>
+<a id='n9' href='#n9'>9</a>
+<a id='n10' href='#n10'>10</a>
+<a id='n11' href='#n11'>11</a>
+<a id='n12' href='#n12'>12</a>
+<a id='n13' href='#n13'>13</a>
+<a id='n14' href='#n14'>14</a>
+<a id='n15' href='#n15'>15</a>
+<a id='n16' href='#n16'>16</a>
+<a id='n17' href='#n17'>17</a>
+<a id='n18' href='#n18'>18</a>
+<a id='n19' href='#n19'>19</a>
+<a id='n20' href='#n20'>20</a>
+<a id='n21' href='#n21'>21</a>
+<a id='n22' href='#n22'>22</a>
+<a id='n23' href='#n23'>23</a>
+</pre></td>
+<td class='lines'><pre><code>Patch-Source: https://github.com/lua/lua/commit/1f3c6f4534c6411313361697d98d1145a1f030fa
+From 1f3c6f4534c6411313361697d98d1145a1f030fa Mon Sep 17 00:00:00 2001
+From: Roberto Ierusalimschy &lt;roberto&#64;inf.puc-rio.br&gt;
+Date: Tue, 15 Feb 2022 12:28:46 -0300
+Subject: [PATCH] Bug: Lua can generate wrong code when _ENV is &lt;const&gt;
+
+<span style="color:#000000; font-weight:bold">---</span>
+ lparser.c | 1 +
+ testes/attrib.lua | 10 ++++++++++
+ 2 files changed, 11 insertions(+)
+
+diff --git a/lparser.c b/lparser.c
+index 3abe3d751..a5cd55257 100644
+<span style="color:#000000; font-weight:bold">--- a/src/lparser.c</span>
+<span style="color:#0057ae">+++ b/src/lparser.c</span>
+&#64;&#64; -468,6 +468,7 &#64;&#64; static void singlevar (LexState *ls, expdesc *var) {
+ expdesc key;
+ singlevaraux(fs, ls-&gt;envn, var, 1); /* get environment variable */
+ lua_assert(var-&gt;k != VVOID); /* this one must exist */
+<span style="color:#0057ae">+ luaK_exp2anyregup(fs, var); /* but could be a constant */</span>
+ codestring(&amp;key, varname); /* key is variable name */
+ luaK_indexed(fs, var, &amp;key); /* env[varname] */
+ }
+</code></pre></td></tr></table>
+</div> <!-- class=content -->
+<div class='footer'>generated by <a href='https://git.zx2c4.com/cgit/about/'>cgit v1.2.3</a> (<a href='https://git-scm.com/'>git 2.25.1</a>) at 2022-05-19 21:36:56 +0000</div>
+</div> <!-- id=cgit -->
+</body>
+</html>
diff --git a/repo/system/lua/extern-c-for-cpp.patch b/repo/system/lua/extern-c-for-cpp.patch
new file mode 100644
index 0000000..6c49c1c
--- /dev/null
+++ b/repo/system/lua/extern-c-for-cpp.patch
@@ -0,0 +1,336 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+<title>extern-c-for-cpp.patch « lua5.4 « main - aports - Alpine packages build scripts
+</title>
+<meta name='generator' content='cgit v1.2.3'/>
+<meta name='robots' content='index, nofollow'/>
+<link rel='stylesheet' type='text/css' href='/cgit.css'/>
+<link rel='shortcut icon' href='//alpinelinux.org/alpine-logo.ico'/>
+<link rel='alternate' title='Atom feed' href='http://git.alpinelinux.org/aports/atom/main/lua5.4/extern-c-for-cpp.patch?h=master' type='application/atom+xml'/>
+<link rel='vcs-git' href='https://git.alpinelinux.org/aports' title='aports Git repository'/>
+</head>
+<body>
+<div id='cgit'><table id='header'>
+<tr>
+<td class='logo' rowspan='2'><a href='/'><img src='//wiki.alpinelinux.org/images/alogo.png' alt='cgit logo'/></a></td>
+<td class='main'><a href='/'>index</a> : <a title='aports' href='/aports/'>aports</a></td><td class='form'><form method='get'>
+<select name='h' onchange='this.form.submit();'>
+<option value='1.10-stable'>1.10-stable</option>
+<option value='1.9'>1.9</option>
+<option value='2.0-stable'>2.0-stable</option>
+<option value='2.1-stable'>2.1-stable</option>
+<option value='2.2-stable'>2.2-stable</option>
+<option value='2.3-stable'>2.3-stable</option>
+<option value='2.4-stable'>2.4-stable</option>
+<option value='2.5-stable'>2.5-stable</option>
+<option value='2.6-stable'>2.6-stable</option>
+<option value='2.7-stable'>2.7-stable</option>
+<option value='3.0-stable'>3.0-stable</option>
+<option value='3.1-stable'>3.1-stable</option>
+<option value='3.10-stable'>3.10-stable</option>
+<option value='3.11-stable'>3.11-stable</option>
+<option value='3.12-stable'>3.12-stable</option>
+<option value='3.13-stable'>3.13-stable</option>
+<option value='3.14-stable'>3.14-stable</option>
+<option value='3.15-stable'>3.15-stable</option>
+<option value='3.2-stable'>3.2-stable</option>
+<option value='3.3-stable'>3.3-stable</option>
+<option value='3.4-stable'>3.4-stable</option>
+<option value='3.5-stable'>3.5-stable</option>
+<option value='3.6-stable'>3.6-stable</option>
+<option value='3.7-stable'>3.7-stable</option>
+<option value='3.8-stable'>3.8-stable</option>
+<option value='3.9-stable'>3.9-stable</option>
+<option value='fs-upgrade-1.10.7'>fs-upgrade-1.10.7</option>
+<option value='libcgroup'>libcgroup</option>
+<option value='master' selected='selected'>master</option>
+<option value='nuspell'>nuspell</option>
+<option value='patches/3527'>patches/3527</option>
+<option value='patches/3530'>patches/3530</option>
+<option value='patches/3531'>patches/3531</option>
+<option value='patches/3534'>patches/3534</option>
+<option value='patches/3535'>patches/3535</option>
+<option value='patches/3538'>patches/3538</option>
+<option value='patches/3539'>patches/3539</option>
+<option value='patches/3540'>patches/3540</option>
+<option value='patches/3551'>patches/3551</option>
+<option value='patches/3556'>patches/3556</option>
+<option value='patches/3558'>patches/3558</option>
+<option value='patches/3559'>patches/3559</option>
+<option value='patches/3562'>patches/3562</option>
+<option value='patches/3563'>patches/3563</option>
+<option value='patches/3564'>patches/3564</option>
+<option value='patches/3565'>patches/3565</option>
+<option value='patches/3567'>patches/3567</option>
+<option value='patches/3568'>patches/3568</option>
+<option value='patches/3569'>patches/3569</option>
+<option value='patches/3574'>patches/3574</option>
+<option value='patches/3575'>patches/3575</option>
+<option value='patches/3576'>patches/3576</option>
+<option value='patches/3577'>patches/3577</option>
+<option value='patches/3582'>patches/3582</option>
+<option value='patches/3584'>patches/3584</option>
+<option value='patches/3590'>patches/3590</option>
+<option value='patches/3592'>patches/3592</option>
+<option value='patches/3594'>patches/3594</option>
+<option value='patches/3598'>patches/3598</option>
+<option value='patches/3599'>patches/3599</option>
+<option value='patches/3601'>patches/3601</option>
+<option value='patches/3603'>patches/3603</option>
+<option value='patches/3604'>patches/3604</option>
+<option value='patches/3606'>patches/3606</option>
+<option value='patches/3607'>patches/3607</option>
+<option value='patches/3608'>patches/3608</option>
+<option value='patches/3610'>patches/3610</option>
+<option value='patches/3612'>patches/3612</option>
+<option value='patches/3613'>patches/3613</option>
+<option value='patches/3615'>patches/3615</option>
+<option value='patches/3616'>patches/3616</option>
+<option value='patches/3618'>patches/3618</option>
+<option value='patches/3621'>patches/3621</option>
+<option value='patches/3622'>patches/3622</option>
+<option value='patches/3624'>patches/3624</option>
+<option value='patches/3627'>patches/3627</option>
+<option value='patches/3632'>patches/3632</option>
+<option value='patches/3633'>patches/3633</option>
+<option value='patches/3635'>patches/3635</option>
+<option value='patches/3636'>patches/3636</option>
+<option value='patches/3646'>patches/3646</option>
+<option value='patches/3654'>patches/3654</option>
+<option value='patches/3656'>patches/3656</option>
+<option value='patches/3662'>patches/3662</option>
+<option value='patches/3666'>patches/3666</option>
+<option value='patches/3670'>patches/3670</option>
+<option value='patches/3671'>patches/3671</option>
+<option value='patches/3675'>patches/3675</option>
+<option value='patches/3687'>patches/3687</option>
+<option value='patches/3690'>patches/3690</option>
+<option value='patches/3691'>patches/3691</option>
+<option value='patches/3692'>patches/3692</option>
+<option value='patches/3697'>patches/3697</option>
+<option value='patches/3706'>patches/3706</option>
+<option value='patches/3707'>patches/3707</option>
+<option value='patches/3715'>patches/3715</option>
+<option value='patches/3721'>patches/3721</option>
+<option value='patches/3722'>patches/3722</option>
+<option value='patches/3724'>patches/3724</option>
+<option value='patches/3731'>patches/3731</option>
+<option value='patches/3756'>patches/3756</option>
+<option value='patches/3764'>patches/3764</option>
+<option value='patches/3767'>patches/3767</option>
+<option value='patches/3770'>patches/3770</option>
+<option value='patches/3771'>patches/3771</option>
+<option value='patches/3774'>patches/3774</option>
+<option value='patches/3775'>patches/3775</option>
+<option value='patches/3777'>patches/3777</option>
+<option value='patches/3779'>patches/3779</option>
+<option value='patches/3787'>patches/3787</option>
+<option value='patches/3788'>patches/3788</option>
+<option value='patches/3789'>patches/3789</option>
+<option value='patches/3793'>patches/3793</option>
+<option value='patches/3796'>patches/3796</option>
+<option value='patches/3797'>patches/3797</option>
+<option value='patches/3798'>patches/3798</option>
+<option value='patches/3799'>patches/3799</option>
+<option value='patches/3800'>patches/3800</option>
+<option value='patches/3802'>patches/3802</option>
+<option value='patches/3803'>patches/3803</option>
+<option value='patches/3804'>patches/3804</option>
+<option value='patches/3805'>patches/3805</option>
+<option value='patches/3808'>patches/3808</option>
+<option value='patches/3813'>patches/3813</option>
+<option value='patches/3816'>patches/3816</option>
+<option value='patches/3818'>patches/3818</option>
+<option value='patches/3820'>patches/3820</option>
+<option value='patches/3821'>patches/3821</option>
+<option value='patches/3822'>patches/3822</option>
+<option value='patches/3823'>patches/3823</option>
+<option value='patches/3825'>patches/3825</option>
+<option value='patches/3827'>patches/3827</option>
+<option value='patches/3828'>patches/3828</option>
+<option value='patches/3829'>patches/3829</option>
+<option value='patches/3830'>patches/3830</option>
+<option value='patches/3831'>patches/3831</option>
+<option value='patches/3832'>patches/3832</option>
+<option value='patches/3833'>patches/3833</option>
+<option value='patches/3835'>patches/3835</option>
+<option value='patches/3836'>patches/3836</option>
+<option value='patches/3837'>patches/3837</option>
+<option value='patches/3838'>patches/3838</option>
+<option value='patches/3839'>patches/3839</option>
+<option value='patches/3843'>patches/3843</option>
+<option value='patches/3845'>patches/3845</option>
+<option value='patches/3846'>patches/3846</option>
+<option value='patches/3847'>patches/3847</option>
+<option value='patches/3850'>patches/3850</option>
+<option value='patches/3852'>patches/3852</option>
+<option value='patches/3853'>patches/3853</option>
+<option value='patches/3854'>patches/3854</option>
+<option value='patches/3855'>patches/3855</option>
+<option value='patches/3858'>patches/3858</option>
+<option value='patches/3861'>patches/3861</option>
+<option value='patches/3863'>patches/3863</option>
+<option value='patches/3864'>patches/3864</option>
+<option value='patches/3868'>patches/3868</option>
+<option value='patches/3869'>patches/3869</option>
+<option value='patches/3870'>patches/3870</option>
+<option value='patches/3871'>patches/3871</option>
+<option value='patches/3873'>patches/3873</option>
+<option value='patches/3878'>patches/3878</option>
+<option value='patches/3881'>patches/3881</option>
+<option value='patches/3882'>patches/3882</option>
+<option value='patches/3883'>patches/3883</option>
+<option value='patches/3885'>patches/3885</option>
+<option value='patches/3886'>patches/3886</option>
+<option value='patches/3887'>patches/3887</option>
+<option value='patches/3888'>patches/3888</option>
+<option value='patches/3890'>patches/3890</option>
+<option value='patches/3891'>patches/3891</option>
+<option value='patches/3892'>patches/3892</option>
+<option value='patches/3895'>patches/3895</option>
+<option value='patches/3896'>patches/3896</option>
+<option value='patches/3897'>patches/3897</option>
+<option value='patches/3908'>patches/3908</option>
+<option value='patches/3909'>patches/3909</option>
+<option value='patches/3912'>patches/3912</option>
+<option value='patches/3913'>patches/3913</option>
+<option value='patches/3914'>patches/3914</option>
+<option value='patches/3916'>patches/3916</option>
+<option value='patches/3918'>patches/3918</option>
+<option value='patches/3920'>patches/3920</option>
+<option value='patches/3923'>patches/3923</option>
+<option value='patches/3927'>patches/3927</option>
+<option value='patches/3933'>patches/3933</option>
+<option value='patches/3934'>patches/3934</option>
+<option value='patches/3937'>patches/3937</option>
+<option value='patches/3941'>patches/3941</option>
+<option value='patches/3946'>patches/3946</option>
+<option value='patches/3947'>patches/3947</option>
+<option value='patches/3949'>patches/3949</option>
+<option value='patches/3950'>patches/3950</option>
+<option value='patches/3953'>patches/3953</option>
+<option value='patches/3954'>patches/3954</option>
+<option value='patches/3957'>patches/3957</option>
+<option value='patches/3958'>patches/3958</option>
+<option value='patches/3959'>patches/3959</option>
+<option value='patches/3963'>patches/3963</option>
+<option value='patches/3969'>patches/3969</option>
+<option value='patches/3970'>patches/3970</option>
+<option value='patches/3976'>patches/3976</option>
+<option value='patches/3977'>patches/3977</option>
+<option value='patches/3979'>patches/3979</option>
+<option value='patches/3980'>patches/3980</option>
+<option value='patches/3981'>patches/3981</option>
+<option value='patches/3987'>patches/3987</option>
+<option value='patches/3988'>patches/3988</option>
+<option value='patches/3989'>patches/3989</option>
+<option value='patches/3998'>patches/3998</option>
+<option value='patches/3999'>patches/3999</option>
+<option value='patches/4000'>patches/4000</option>
+<option value='patches/4001'>patches/4001</option>
+<option value='patches/4002'>patches/4002</option>
+<option value='patches/4008'>patches/4008</option>
+<option value='patches/4012'>patches/4012</option>
+<option value='patches/4013'>patches/4013</option>
+<option value='patches/4019'>patches/4019</option>
+<option value='patches/4021'>patches/4021</option>
+<option value='patches/4022'>patches/4022</option>
+<option value='patches/4026'>patches/4026</option>
+<option value='patches/4029'>patches/4029</option>
+<option value='patches/4030'>patches/4030</option>
+<option value='patches/4031'>patches/4031</option>
+<option value='patches/4033'>patches/4033</option>
+<option value='patches/4037'>patches/4037</option>
+<option value='patches/4040'>patches/4040</option>
+<option value='patches/4042'>patches/4042</option>
+<option value='patches/4045'>patches/4045</option>
+<option value='patches/4047'>patches/4047</option>
+<option value='patches/4058'>patches/4058</option>
+<option value='patches/4059'>patches/4059</option>
+<option value='patches/4060'>patches/4060</option>
+<option value='patches/4062'>patches/4062</option>
+<option value='patches/4063'>patches/4063</option>
+<option value='patches/4066'>patches/4066</option>
+<option value='patches/4067'>patches/4067</option>
+<option value='patches/4069'>patches/4069</option>
+<option value='patches/4070'>patches/4070</option>
+<option value='patches/4072'>patches/4072</option>
+<option value='patches/4073'>patches/4073</option>
+<option value='patches/4076'>patches/4076</option>
+<option value='patches/4078'>patches/4078</option>
+<option value='patches/4079'>patches/4079</option>
+<option value='patches/4080'>patches/4080</option>
+<option value='patches/4081'>patches/4081</option>
+<option value='py3-fonttools'>py3-fonttools</option>
+<option value='wlroots'>wlroots</option>
+</select> <input type='submit' value='switch'/></form></td></tr>
+<tr><td class='sub'>Alpine packages build scripts
+</td><td class='sub right'>uwsgi</td></tr></table>
+<table class='tabs'><tr><td>
+<a href='/aports/about/'>about</a><a href='/aports/'>summary</a><a href='/aports/refs/'>refs</a><a href='/aports/log/main/lua5.4/extern-c-for-cpp.patch'>log</a><a class='active' href='/aports/tree/main/lua5.4/extern-c-for-cpp.patch'>tree</a><a href='/aports/commit/main/lua5.4/extern-c-for-cpp.patch'>commit</a><a href='/aports/diff/main/lua5.4/extern-c-for-cpp.patch'>diff</a><a href='/aports/stats/main/lua5.4/extern-c-for-cpp.patch'>stats</a></td><td class='form'><form class='right' method='get' action='/aports/log/main/lua5.4/extern-c-for-cpp.patch'>
+<select name='qt'>
+<option value='grep'>log msg</option>
+<option value='author'>author</option>
+<option value='committer'>committer</option>
+<option value='range'>range</option>
+</select>
+<input class='txt' type='search' size='10' name='q' value=''/>
+<input type='submit' value='search'/>
+</form>
+</td></tr></table>
+<div class='path'>path: <a href='/aports/tree/'>root</a>/<a href='/aports/tree/main'>main</a>/<a href='/aports/tree/main/lua5.4'>lua5.4</a>/<a href='/aports/tree/main/lua5.4/extern-c-for-cpp.patch'>extern-c-for-cpp.patch</a></div><div class='content'>blob: c2268c76db839cf9272a3099563b6f80f72e0b0c (<a href='/aports/plain/main/lua5.4/extern-c-for-cpp.patch'>plain</a>) (<a href='/aports/blame/main/lua5.4/extern-c-for-cpp.patch'>blame</a>)
+<table summary='blob content' class='blob'>
+<tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a>
+<a id='n2' href='#n2'>2</a>
+<a id='n3' href='#n3'>3</a>
+<a id='n4' href='#n4'>4</a>
+<a id='n5' href='#n5'>5</a>
+<a id='n6' href='#n6'>6</a>
+<a id='n7' href='#n7'>7</a>
+<a id='n8' href='#n8'>8</a>
+<a id='n9' href='#n9'>9</a>
+<a id='n10' href='#n10'>10</a>
+<a id='n11' href='#n11'>11</a>
+<a id='n12' href='#n12'>12</a>
+<a id='n13' href='#n13'>13</a>
+<a id='n14' href='#n14'>14</a>
+<a id='n15' href='#n15'>15</a>
+<a id='n16' href='#n16'>16</a>
+<a id='n17' href='#n17'>17</a>
+<a id='n18' href='#n18'>18</a>
+<a id='n19' href='#n19'>19</a>
+<a id='n20' href='#n20'>20</a>
+<a id='n21' href='#n21'>21</a>
+<a id='n22' href='#n22'>22</a>
+<a id='n23' href='#n23'>23</a>
+</pre></td>
+<td class='lines'><pre><code>Patch-Source: https://salsa.debian.org/lua-team/lua5.4/-/blob/bc284bb404e51d27feb5ffc705de8e32959c2048/debian/patches/0003-extern_C.patch
+From: Enrico Tassi &lt;gareuselesinge&#64;debian.org&gt;
+Date: Fri, 14 Aug 2015 09:36:52 +0200
+Subject: extern_C
+
+<span style="color:#000000; font-weight:bold">---</span>
+ src/luaconf.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+<span style="color:#000000; font-weight:bold">--- a/src/luaconf.h</span>
+<span style="color:#0057ae">+++ b/src/luaconf.h</span>
+<span style="color:#010181">&#64;&#64; -287,7 +287,11 &#64;&#64;</span>
+
+ #else /* }{ */
+
+<span style="color:#0057ae">+#ifdef __cplusplus</span>
+<span style="color:#0057ae">+#define LUA_API extern &quot;C&quot;</span>
+<span style="color:#0057ae">+#else</span>
+ #define LUA_API extern
+<span style="color:#0057ae">+#endif</span>
+
+ #endif /* } */
+
+</code></pre></td></tr></table>
+</div> <!-- class=content -->
+<div class='footer'>generated by <a href='https://git.zx2c4.com/cgit/about/'>cgit v1.2.3</a> (<a href='https://git-scm.com/'>git 2.25.1</a>) at 2022-05-19 21:36:44 +0000</div>
+</div> <!-- id=cgit -->
+</body>
+</html>
diff --git a/repo/system/lua/fix-double-free.patch b/repo/system/lua/fix-double-free.patch
new file mode 100644
index 0000000..2b6c476
--- /dev/null
+++ b/repo/system/lua/fix-double-free.patch
@@ -0,0 +1,402 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+<title>fix-double-free.patch « lua5.4 « main - aports - Alpine packages build scripts
+</title>
+<meta name='generator' content='cgit v1.2.3'/>
+<meta name='robots' content='index, nofollow'/>
+<link rel='stylesheet' type='text/css' href='/cgit.css'/>
+<link rel='shortcut icon' href='//alpinelinux.org/alpine-logo.ico'/>
+<link rel='alternate' title='Atom feed' href='http://git.alpinelinux.org/aports/atom/main/lua5.4/fix-double-free.patch?h=master' type='application/atom+xml'/>
+<link rel='vcs-git' href='https://git.alpinelinux.org/aports' title='aports Git repository'/>
+</head>
+<body>
+<div id='cgit'><table id='header'>
+<tr>
+<td class='logo' rowspan='2'><a href='/'><img src='//wiki.alpinelinux.org/images/alogo.png' alt='cgit logo'/></a></td>
+<td class='main'><a href='/'>index</a> : <a title='aports' href='/aports/'>aports</a></td><td class='form'><form method='get'>
+<select name='h' onchange='this.form.submit();'>
+<option value='1.10-stable'>1.10-stable</option>
+<option value='1.9'>1.9</option>
+<option value='2.0-stable'>2.0-stable</option>
+<option value='2.1-stable'>2.1-stable</option>
+<option value='2.2-stable'>2.2-stable</option>
+<option value='2.3-stable'>2.3-stable</option>
+<option value='2.4-stable'>2.4-stable</option>
+<option value='2.5-stable'>2.5-stable</option>
+<option value='2.6-stable'>2.6-stable</option>
+<option value='2.7-stable'>2.7-stable</option>
+<option value='3.0-stable'>3.0-stable</option>
+<option value='3.1-stable'>3.1-stable</option>
+<option value='3.10-stable'>3.10-stable</option>
+<option value='3.11-stable'>3.11-stable</option>
+<option value='3.12-stable'>3.12-stable</option>
+<option value='3.13-stable'>3.13-stable</option>
+<option value='3.14-stable'>3.14-stable</option>
+<option value='3.15-stable'>3.15-stable</option>
+<option value='3.2-stable'>3.2-stable</option>
+<option value='3.3-stable'>3.3-stable</option>
+<option value='3.4-stable'>3.4-stable</option>
+<option value='3.5-stable'>3.5-stable</option>
+<option value='3.6-stable'>3.6-stable</option>
+<option value='3.7-stable'>3.7-stable</option>
+<option value='3.8-stable'>3.8-stable</option>
+<option value='3.9-stable'>3.9-stable</option>
+<option value='fs-upgrade-1.10.7'>fs-upgrade-1.10.7</option>
+<option value='libcgroup'>libcgroup</option>
+<option value='master' selected='selected'>master</option>
+<option value='nuspell'>nuspell</option>
+<option value='patches/3527'>patches/3527</option>
+<option value='patches/3530'>patches/3530</option>
+<option value='patches/3531'>patches/3531</option>
+<option value='patches/3534'>patches/3534</option>
+<option value='patches/3535'>patches/3535</option>
+<option value='patches/3538'>patches/3538</option>
+<option value='patches/3539'>patches/3539</option>
+<option value='patches/3540'>patches/3540</option>
+<option value='patches/3551'>patches/3551</option>
+<option value='patches/3556'>patches/3556</option>
+<option value='patches/3558'>patches/3558</option>
+<option value='patches/3559'>patches/3559</option>
+<option value='patches/3562'>patches/3562</option>
+<option value='patches/3563'>patches/3563</option>
+<option value='patches/3564'>patches/3564</option>
+<option value='patches/3565'>patches/3565</option>
+<option value='patches/3567'>patches/3567</option>
+<option value='patches/3568'>patches/3568</option>
+<option value='patches/3569'>patches/3569</option>
+<option value='patches/3574'>patches/3574</option>
+<option value='patches/3575'>patches/3575</option>
+<option value='patches/3576'>patches/3576</option>
+<option value='patches/3577'>patches/3577</option>
+<option value='patches/3582'>patches/3582</option>
+<option value='patches/3584'>patches/3584</option>
+<option value='patches/3590'>patches/3590</option>
+<option value='patches/3592'>patches/3592</option>
+<option value='patches/3594'>patches/3594</option>
+<option value='patches/3598'>patches/3598</option>
+<option value='patches/3599'>patches/3599</option>
+<option value='patches/3601'>patches/3601</option>
+<option value='patches/3603'>patches/3603</option>
+<option value='patches/3604'>patches/3604</option>
+<option value='patches/3606'>patches/3606</option>
+<option value='patches/3607'>patches/3607</option>
+<option value='patches/3608'>patches/3608</option>
+<option value='patches/3610'>patches/3610</option>
+<option value='patches/3612'>patches/3612</option>
+<option value='patches/3613'>patches/3613</option>
+<option value='patches/3615'>patches/3615</option>
+<option value='patches/3616'>patches/3616</option>
+<option value='patches/3618'>patches/3618</option>
+<option value='patches/3621'>patches/3621</option>
+<option value='patches/3622'>patches/3622</option>
+<option value='patches/3624'>patches/3624</option>
+<option value='patches/3627'>patches/3627</option>
+<option value='patches/3632'>patches/3632</option>
+<option value='patches/3633'>patches/3633</option>
+<option value='patches/3635'>patches/3635</option>
+<option value='patches/3636'>patches/3636</option>
+<option value='patches/3646'>patches/3646</option>
+<option value='patches/3654'>patches/3654</option>
+<option value='patches/3656'>patches/3656</option>
+<option value='patches/3662'>patches/3662</option>
+<option value='patches/3666'>patches/3666</option>
+<option value='patches/3670'>patches/3670</option>
+<option value='patches/3671'>patches/3671</option>
+<option value='patches/3675'>patches/3675</option>
+<option value='patches/3687'>patches/3687</option>
+<option value='patches/3690'>patches/3690</option>
+<option value='patches/3691'>patches/3691</option>
+<option value='patches/3692'>patches/3692</option>
+<option value='patches/3697'>patches/3697</option>
+<option value='patches/3706'>patches/3706</option>
+<option value='patches/3707'>patches/3707</option>
+<option value='patches/3715'>patches/3715</option>
+<option value='patches/3721'>patches/3721</option>
+<option value='patches/3722'>patches/3722</option>
+<option value='patches/3724'>patches/3724</option>
+<option value='patches/3731'>patches/3731</option>
+<option value='patches/3756'>patches/3756</option>
+<option value='patches/3764'>patches/3764</option>
+<option value='patches/3767'>patches/3767</option>
+<option value='patches/3770'>patches/3770</option>
+<option value='patches/3771'>patches/3771</option>
+<option value='patches/3774'>patches/3774</option>
+<option value='patches/3775'>patches/3775</option>
+<option value='patches/3777'>patches/3777</option>
+<option value='patches/3779'>patches/3779</option>
+<option value='patches/3787'>patches/3787</option>
+<option value='patches/3788'>patches/3788</option>
+<option value='patches/3789'>patches/3789</option>
+<option value='patches/3793'>patches/3793</option>
+<option value='patches/3796'>patches/3796</option>
+<option value='patches/3797'>patches/3797</option>
+<option value='patches/3798'>patches/3798</option>
+<option value='patches/3799'>patches/3799</option>
+<option value='patches/3800'>patches/3800</option>
+<option value='patches/3802'>patches/3802</option>
+<option value='patches/3803'>patches/3803</option>
+<option value='patches/3804'>patches/3804</option>
+<option value='patches/3805'>patches/3805</option>
+<option value='patches/3808'>patches/3808</option>
+<option value='patches/3813'>patches/3813</option>
+<option value='patches/3816'>patches/3816</option>
+<option value='patches/3818'>patches/3818</option>
+<option value='patches/3820'>patches/3820</option>
+<option value='patches/3821'>patches/3821</option>
+<option value='patches/3822'>patches/3822</option>
+<option value='patches/3823'>patches/3823</option>
+<option value='patches/3825'>patches/3825</option>
+<option value='patches/3827'>patches/3827</option>
+<option value='patches/3828'>patches/3828</option>
+<option value='patches/3829'>patches/3829</option>
+<option value='patches/3830'>patches/3830</option>
+<option value='patches/3831'>patches/3831</option>
+<option value='patches/3832'>patches/3832</option>
+<option value='patches/3833'>patches/3833</option>
+<option value='patches/3835'>patches/3835</option>
+<option value='patches/3836'>patches/3836</option>
+<option value='patches/3837'>patches/3837</option>
+<option value='patches/3838'>patches/3838</option>
+<option value='patches/3839'>patches/3839</option>
+<option value='patches/3843'>patches/3843</option>
+<option value='patches/3845'>patches/3845</option>
+<option value='patches/3846'>patches/3846</option>
+<option value='patches/3847'>patches/3847</option>
+<option value='patches/3850'>patches/3850</option>
+<option value='patches/3852'>patches/3852</option>
+<option value='patches/3853'>patches/3853</option>
+<option value='patches/3854'>patches/3854</option>
+<option value='patches/3855'>patches/3855</option>
+<option value='patches/3858'>patches/3858</option>
+<option value='patches/3861'>patches/3861</option>
+<option value='patches/3863'>patches/3863</option>
+<option value='patches/3864'>patches/3864</option>
+<option value='patches/3868'>patches/3868</option>
+<option value='patches/3869'>patches/3869</option>
+<option value='patches/3870'>patches/3870</option>
+<option value='patches/3871'>patches/3871</option>
+<option value='patches/3873'>patches/3873</option>
+<option value='patches/3878'>patches/3878</option>
+<option value='patches/3881'>patches/3881</option>
+<option value='patches/3882'>patches/3882</option>
+<option value='patches/3883'>patches/3883</option>
+<option value='patches/3885'>patches/3885</option>
+<option value='patches/3886'>patches/3886</option>
+<option value='patches/3887'>patches/3887</option>
+<option value='patches/3888'>patches/3888</option>
+<option value='patches/3890'>patches/3890</option>
+<option value='patches/3891'>patches/3891</option>
+<option value='patches/3892'>patches/3892</option>
+<option value='patches/3895'>patches/3895</option>
+<option value='patches/3896'>patches/3896</option>
+<option value='patches/3897'>patches/3897</option>
+<option value='patches/3908'>patches/3908</option>
+<option value='patches/3909'>patches/3909</option>
+<option value='patches/3912'>patches/3912</option>
+<option value='patches/3913'>patches/3913</option>
+<option value='patches/3914'>patches/3914</option>
+<option value='patches/3916'>patches/3916</option>
+<option value='patches/3918'>patches/3918</option>
+<option value='patches/3920'>patches/3920</option>
+<option value='patches/3923'>patches/3923</option>
+<option value='patches/3927'>patches/3927</option>
+<option value='patches/3933'>patches/3933</option>
+<option value='patches/3934'>patches/3934</option>
+<option value='patches/3937'>patches/3937</option>
+<option value='patches/3941'>patches/3941</option>
+<option value='patches/3946'>patches/3946</option>
+<option value='patches/3947'>patches/3947</option>
+<option value='patches/3949'>patches/3949</option>
+<option value='patches/3950'>patches/3950</option>
+<option value='patches/3953'>patches/3953</option>
+<option value='patches/3954'>patches/3954</option>
+<option value='patches/3957'>patches/3957</option>
+<option value='patches/3958'>patches/3958</option>
+<option value='patches/3959'>patches/3959</option>
+<option value='patches/3963'>patches/3963</option>
+<option value='patches/3969'>patches/3969</option>
+<option value='patches/3970'>patches/3970</option>
+<option value='patches/3976'>patches/3976</option>
+<option value='patches/3977'>patches/3977</option>
+<option value='patches/3979'>patches/3979</option>
+<option value='patches/3980'>patches/3980</option>
+<option value='patches/3981'>patches/3981</option>
+<option value='patches/3987'>patches/3987</option>
+<option value='patches/3988'>patches/3988</option>
+<option value='patches/3989'>patches/3989</option>
+<option value='patches/3998'>patches/3998</option>
+<option value='patches/3999'>patches/3999</option>
+<option value='patches/4000'>patches/4000</option>
+<option value='patches/4001'>patches/4001</option>
+<option value='patches/4002'>patches/4002</option>
+<option value='patches/4008'>patches/4008</option>
+<option value='patches/4012'>patches/4012</option>
+<option value='patches/4013'>patches/4013</option>
+<option value='patches/4019'>patches/4019</option>
+<option value='patches/4021'>patches/4021</option>
+<option value='patches/4022'>patches/4022</option>
+<option value='patches/4026'>patches/4026</option>
+<option value='patches/4029'>patches/4029</option>
+<option value='patches/4030'>patches/4030</option>
+<option value='patches/4031'>patches/4031</option>
+<option value='patches/4033'>patches/4033</option>
+<option value='patches/4037'>patches/4037</option>
+<option value='patches/4040'>patches/4040</option>
+<option value='patches/4042'>patches/4042</option>
+<option value='patches/4045'>patches/4045</option>
+<option value='patches/4047'>patches/4047</option>
+<option value='patches/4058'>patches/4058</option>
+<option value='patches/4059'>patches/4059</option>
+<option value='patches/4060'>patches/4060</option>
+<option value='patches/4062'>patches/4062</option>
+<option value='patches/4063'>patches/4063</option>
+<option value='patches/4066'>patches/4066</option>
+<option value='patches/4067'>patches/4067</option>
+<option value='patches/4069'>patches/4069</option>
+<option value='patches/4070'>patches/4070</option>
+<option value='patches/4072'>patches/4072</option>
+<option value='patches/4073'>patches/4073</option>
+<option value='patches/4076'>patches/4076</option>
+<option value='patches/4078'>patches/4078</option>
+<option value='patches/4079'>patches/4079</option>
+<option value='patches/4080'>patches/4080</option>
+<option value='patches/4081'>patches/4081</option>
+<option value='py3-fonttools'>py3-fonttools</option>
+<option value='wlroots'>wlroots</option>
+</select> <input type='submit' value='switch'/></form></td></tr>
+<tr><td class='sub'>Alpine packages build scripts
+</td><td class='sub right'>uwsgi</td></tr></table>
+<table class='tabs'><tr><td>
+<a href='/aports/about/'>about</a><a href='/aports/'>summary</a><a href='/aports/refs/'>refs</a><a href='/aports/log/main/lua5.4/fix-double-free.patch'>log</a><a class='active' href='/aports/tree/main/lua5.4/fix-double-free.patch'>tree</a><a href='/aports/commit/main/lua5.4/fix-double-free.patch'>commit</a><a href='/aports/diff/main/lua5.4/fix-double-free.patch'>diff</a><a href='/aports/stats/main/lua5.4/fix-double-free.patch'>stats</a></td><td class='form'><form class='right' method='get' action='/aports/log/main/lua5.4/fix-double-free.patch'>
+<select name='qt'>
+<option value='grep'>log msg</option>
+<option value='author'>author</option>
+<option value='committer'>committer</option>
+<option value='range'>range</option>
+</select>
+<input class='txt' type='search' size='10' name='q' value=''/>
+<input type='submit' value='search'/>
+</form>
+</td></tr></table>
+<div class='path'>path: <a href='/aports/tree/'>root</a>/<a href='/aports/tree/main'>main</a>/<a href='/aports/tree/main/lua5.4'>lua5.4</a>/<a href='/aports/tree/main/lua5.4/fix-double-free.patch'>fix-double-free.patch</a></div><div class='content'>blob: ad87fafc29d2694ba5daf79d5afc337ef1cfa84b (<a href='/aports/plain/main/lua5.4/fix-double-free.patch'>plain</a>) (<a href='/aports/blame/main/lua5.4/fix-double-free.patch'>blame</a>)
+<table summary='blob content' class='blob'>
+<tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a>
+<a id='n2' href='#n2'>2</a>
+<a id='n3' href='#n3'>3</a>
+<a id='n4' href='#n4'>4</a>
+<a id='n5' href='#n5'>5</a>
+<a id='n6' href='#n6'>6</a>
+<a id='n7' href='#n7'>7</a>
+<a id='n8' href='#n8'>8</a>
+<a id='n9' href='#n9'>9</a>
+<a id='n10' href='#n10'>10</a>
+<a id='n11' href='#n11'>11</a>
+<a id='n12' href='#n12'>12</a>
+<a id='n13' href='#n13'>13</a>
+<a id='n14' href='#n14'>14</a>
+<a id='n15' href='#n15'>15</a>
+<a id='n16' href='#n16'>16</a>
+<a id='n17' href='#n17'>17</a>
+<a id='n18' href='#n18'>18</a>
+<a id='n19' href='#n19'>19</a>
+<a id='n20' href='#n20'>20</a>
+<a id='n21' href='#n21'>21</a>
+<a id='n22' href='#n22'>22</a>
+<a id='n23' href='#n23'>23</a>
+<a id='n24' href='#n24'>24</a>
+<a id='n25' href='#n25'>25</a>
+<a id='n26' href='#n26'>26</a>
+<a id='n27' href='#n27'>27</a>
+<a id='n28' href='#n28'>28</a>
+<a id='n29' href='#n29'>29</a>
+<a id='n30' href='#n30'>30</a>
+<a id='n31' href='#n31'>31</a>
+<a id='n32' href='#n32'>32</a>
+<a id='n33' href='#n33'>33</a>
+<a id='n34' href='#n34'>34</a>
+<a id='n35' href='#n35'>35</a>
+<a id='n36' href='#n36'>36</a>
+<a id='n37' href='#n37'>37</a>
+<a id='n38' href='#n38'>38</a>
+<a id='n39' href='#n39'>39</a>
+<a id='n40' href='#n40'>40</a>
+<a id='n41' href='#n41'>41</a>
+<a id='n42' href='#n42'>42</a>
+<a id='n43' href='#n43'>43</a>
+<a id='n44' href='#n44'>44</a>
+<a id='n45' href='#n45'>45</a>
+<a id='n46' href='#n46'>46</a>
+<a id='n47' href='#n47'>47</a>
+<a id='n48' href='#n48'>48</a>
+<a id='n49' href='#n49'>49</a>
+<a id='n50' href='#n50'>50</a>
+<a id='n51' href='#n51'>51</a>
+<a id='n52' href='#n52'>52</a>
+<a id='n53' href='#n53'>53</a>
+<a id='n54' href='#n54'>54</a>
+<a id='n55' href='#n55'>55</a>
+<a id='n56' href='#n56'>56</a>
+</pre></td>
+<td class='lines'><pre><code>Lua5.4 frees the lineinfo memory twice. Once via combine() and once
+via close_state() this causes a segfault on musl. The segfault double
+free can be fixed by having combine assign NULL to f-&gt;lineinfo after
+it has been freed. Thus not freeing it again in close_state().
+
+Valgrind output for the double-free:
+
+ ==29903== Invalid free() / delete / delete[] / realloc()
+ ==29903== at 0x48A4B0D: free (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
+ ==29903== by 0x11E5D2: l_alloc (lauxlib.c:1014)
+ ==29903== by 0x112F51: luaM_free_ (lmem.c:135)
+ ==29903== by 0x11111B: luaF_freeproto (lfunc.c:271)
+ ==29903== by 0x112ABB: deletelist (lgc.c:1494)
+ ==29903== by 0x112ABB: luaC_freeallobjects (lgc.c:1511)
+ ==29903== by 0x116D54: close_state (lstate.c:276)
+ ==29903== by 0x10B549: main (luac.c:210)
+ ==29903== Address 0x48ec220 is 0 bytes inside a block of size 10 free&#39;d
+ ==29903== at 0x48A4B0D: free (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
+ ==29903== by 0x11E5D2: l_alloc (lauxlib.c:1014)
+ ==29903== by 0x112F51: luaM_free_ (lmem.c:135)
+ ==29903== by 0x10C60C: combine (luac.c:158)
+ ==29903== by 0x10C60C: pmain (luac.c:183)
+ ==29903== by 0x10FF38: precallC (ldo.c:506)
+ ==29903== by 0x11020C: luaD_precall (ldo.c:572)
+ ==29903== by 0x110340: ccall (ldo.c:607)
+ ==29903== by 0x10F7CA: luaD_rawrunprotected (ldo.c:144)
+ ==29903== by 0x110668: luaD_pcall (ldo.c:926)
+ ==29903== by 0x10DB2F: lua_pcallk (lapi.c:1067)
+ ==29903== by 0x10B528: main (luac.c:209)
+ ==29903== Block was alloc&#39;d at
+ ==29903== at 0x48A6FC9: realloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
+ ==29903== by 0x112F7E: luaM_realloc_ (lmem.c:166)
+ ==29903== by 0x112FC5: luaM_saferealloc_ (lmem.c:180)
+ ==29903== by 0x113074: luaM_shrinkvector_ (lmem.c:116)
+ ==29903== by 0x114B02: close_func (lparser.c:764)
+ ==29903== by 0x116B1B: mainfunc (lparser.c:1937)
+ ==29903== by 0x116B1B: luaY_parser (lparser.c:1959)
+ ==29903== by 0x10F718: f_parser (ldo.c:971)
+ ==29903== by 0x10F7CA: luaD_rawrunprotected (ldo.c:144)
+ ==29903== by 0x110668: luaD_pcall (ldo.c:926)
+ ==29903== by 0x11074B: luaD_protectedparser (ldo.c:988)
+ ==29903== by 0x10DC13: lua_load (lapi.c:1097)
+ ==29903== by 0x10C5B1: combine (luac.c:151)
+ ==29903== by 0x10C5B1: pmain (luac.c:183)
+
+diff -upr lua5.4.4.orig/src/luac.c lua-5.4.4/src/luac.c
+<span style="color:#000000; font-weight:bold">--- lua5.4.4.orig/src/luac.c 2022-04-14 20:57:01.927447850 +0200</span>
+<span style="color:#0057ae">+++ lua-5.4.4/src/luac.c 2022-04-14 20:57:35.260900910 +0200</span>
+&#64;&#64; -156,6 +156,7 &#64;&#64; static const Proto* combine(lua_State* L
+ if (f-&gt;p[i]-&gt;sizeupvalues&gt;0) f-&gt;p[i]-&gt;upvalues[0].instack=0;
+ }
+ luaM_freearray(L,f-&gt;lineinfo,f-&gt;sizelineinfo);
+<span style="color:#0057ae">+ f-&gt;lineinfo=NULL;</span>
+ f-&gt;sizelineinfo=0;
+ return f;
+ }
+</code></pre></td></tr></table>
+</div> <!-- class=content -->
+<div class='footer'>generated by <a href='https://git.zx2c4.com/cgit/about/'>cgit v1.2.3</a> (<a href='https://git-scm.com/'>git 2.25.1</a>) at 2022-05-19 21:37:05 +0000</div>
+</div> <!-- id=cgit -->
+</body>
+</html>
diff --git a/repo/system/lua/lua-5.4.4-shared_library-1.patch b/repo/system/lua/lua-5.4.4-shared_library-1.patch
new file mode 100644
index 0000000..f1dfad9
--- /dev/null
+++ b/repo/system/lua/lua-5.4.4-shared_library-1.patch
@@ -0,0 +1,78 @@
+Submitted By: Douglas R. Reno <renodr at linuxfromscratch dot org>
+Date: 2020-06-30
+Initial Package Version: 5.4.0
+Upstream Status: Rejected
+Origin: Arch Linux, with some modifications
+Description: Creates a shared liblua library, as well as
+ removes optimization since it causes SIGBUS errors,
+ and sets the search path to /usr from /usr/local.
+ The initial version of this patch was created by
+ Igor Zivkovic, before being rediffed for 5.4.0 by
+ myself with some modifications made.
+
+diff -Naurp lua-5.4.0.orig/Makefile lua-5.4.0/Makefile
+--- lua-5.4.0.orig/Makefile 2020-04-15 07:55:07.000000000 -0500
++++ lua-5.4.0/Makefile 2020-06-30 13:22:00.997938585 -0500
+@@ -52,7 +52,7 @@ R= $V.0
+ all: $(PLAT)
+
+ $(PLATS) help test clean:
+- @cd src && $(MAKE) $@
++ @cd src && $(MAKE) $@ V=$(V) R=$(R)
+
+ install: dummy
+ cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
+diff -Naurp lua-5.4.0.orig/src/luaconf.h lua-5.4.0/src/luaconf.h
+--- lua-5.4.0.orig/src/luaconf.h 2020-06-18 09:25:54.000000000 -0500
++++ lua-5.4.0/src/luaconf.h 2020-06-30 13:24:59.294932289 -0500
+@@ -227,7 +227,7 @@
+
+ #else /* }{ */
+
+-#define LUA_ROOT "/usr/local/"
++#define LUA_ROOT "/usr/"
+ #define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/"
+ #define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/"
+
+diff -Naurp lua-5.4.0.orig/src/Makefile lua-5.4.0/src/Makefile
+--- lua-5.4.0.orig/src/Makefile 2020-04-15 08:00:29.000000000 -0500
++++ lua-5.4.0/src/Makefile 2020-06-30 13:24:15.746933827 -0500
+@@ -7,7 +7,7 @@
+ PLAT= guess
+
+ CC= gcc -std=gnu99
+-CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_3 $(SYSCFLAGS) $(MYCFLAGS)
++CFLAGS= -fPIC -O0 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_COMPAT_5_2 -DLUA_COMPAT_5_1 $(SYSCFLAGS) $(MYCFLAGS)
+ LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS)
+ LIBS= -lm $(SYSLIBS) $(MYLIBS)
+
+@@ -33,6 +33,7 @@ CMCFLAGS= -Os
+ PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris
+
+ LUA_A= liblua.a
++LUA_SO= liblua.so
+ CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o
+ LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
+ BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
+@@ -44,7 +45,7 @@ LUAC_T= luac
+ LUAC_O= luac.o
+
+ ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
+-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO)
+ ALL_A= $(LUA_A)
+
+ # Targets start here.
+@@ -60,6 +61,12 @@ $(LUA_A): $(BASE_O)
+ $(AR) $@ $(BASE_O)
+ $(RANLIB) $@
+
++$(LUA_SO): $(CORE_O) $(LIB_O)
++ $(CC) -shared -ldl -Wl,--soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm
++ $(MYLDFLAGS)
++ ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V)
++ ln -sf $(LUA_SO).$(R) $(LUA_SO)
++
+ $(LUA_T): $(LUA_O) $(LUA_A)
+ $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
+
diff --git a/repo/system/lua/lua.xibuild b/repo/system/lua/lua.xibuild
index fdcf8ab..167fd70 100644
--- a/repo/system/lua/lua.xibuild
+++ b/repo/system/lua/lua.xibuild
@@ -6,18 +6,22 @@ DEPS="readline"
PKG_VER=5.4.4
SOURCE=https://www.lua.org/ftp/lua-$PKG_VER.tar.gz
ADDITIONAL="
- https://www.linuxfromscratch.org/patches/blfs/svn/lua-$PKG_VER-shared_library-1.patch
lua5.4.pc
+
+CVE-2022-28805.patch
+extern-c-for-cpp.patch
+fix-double-free.patch
+lua-5.4.4-shared_library-1.patch
"
DESC="A powerful lightweight scripting language"
prepare () {
+ apply_patches
sed -e "s|@MAJOR_VER@|${PKG_VER%.*}|g" \
-e "s|@MINOR_VER@|${PKG_VER}|g" \
-i lua5.4.pc
- patch -Np1 -i lua-$PKG_VER-shared_library-1.patch
cat > configure.ac <<-EOF
top_buildir=.