[Buildroot] [git commit] package/gawk: fix double free during kernel build
Yann E. MORIN
yann.morin.1998 at free.fr
Mon Oct 31 07:28:03 UTC 2022
commit: https://git.buildroot.net/buildroot/commit/?id=e6942ad11ff03a587ba557aa359d2064f2371c38
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master
Backport an upstream patch to fix a crash during kernel build.
Details: https://bugs.gentoo.org/868567
Fixes:
GEN /home/buildroot/buildroot/output/build/linux-6.0.6/tools/objtool/arch/x86/lib/inat-tables.c
free(): double free detected in tcache 2
Aborted
Signed-off-by: James Hilliard <james.hilliard1 at gmail.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998 at free.fr>
---
.../gawk/0002-Fix-a-bug-with-Node_elem_new.patch | 155 +++++++++++++++++++++
1 file changed, 155 insertions(+)
diff --git a/package/gawk/0002-Fix-a-bug-with-Node_elem_new.patch b/package/gawk/0002-Fix-a-bug-with-Node_elem_new.patch
new file mode 100644
index 0000000000..502f7dcd95
--- /dev/null
+++ b/package/gawk/0002-Fix-a-bug-with-Node_elem_new.patch
@@ -0,0 +1,155 @@
+From baab183439ff4e0c6b77d62156d447e61fc1dcfb Mon Sep 17 00:00:00 2001
+From: "Arnold D. Robbins" <arnold at skeeve.com>
+Date: Wed, 14 Sep 2022 21:08:59 +0300
+Subject: [PATCH] Fix a bug with Node_elem_new.
+
+Signed-off-by: James Hilliard <james.hilliard1 at gmail.com>
+[james.hilliard1 at gmail.com: backport from upstream commit
+baab183439ff4e0c6b77d62156d447e61fc1dcfb]
+---
+ ChangeLog | 8 ++++++++
+ interpret.h | 1 +
+ test/ChangeLog | 5 +++++
+ test/Makefile.am | 4 +++-
+ test/Makefile.in | 9 ++++++++-
+ test/Maketests | 5 +++++
+ test/elemnew1.awk | 9 +++++++++
+ test/elemnew1.ok | 0
+ 8 files changed, 39 insertions(+), 2 deletions(-)
+ create mode 100644 test/elemnew1.awk
+ create mode 100644 test/elemnew1.ok
+
+diff --git a/ChangeLog b/ChangeLog
+index 5fb25483..cd9d9fcd 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,11 @@
++2022-09-14 Arnold D. Robbins <arnold at skeeve.com>
++
++ * interpret.h (r_interpret): For the `push' opcodes, upref
++ the Node_elem_new. See test case elemnew1. Thanks to
++ Emanuel Attila Czirai <corre.a.buscar at gmail.com> for the report,
++ and to Jan Alexander Steffens (heftig)" <heftig at archlinux.org>
++ for the fix.
++
+ 2022-09-04 Arnold D. Robbins <arnold at skeeve.com>
+
+ * 5.2.0: Release tar ball made.
+diff --git a/interpret.h b/interpret.h
+index 57d060e6..268655b2 100644
+--- a/interpret.h
++++ b/interpret.h
+@@ -238,6 +238,7 @@ uninitialized_scalar:
+ _("reference to uninitialized argument `%s'") :
+ _("reference to uninitialized variable `%s'"),
+ save_symbol->vname);
++ UPREF(m);
+ PUSH(m);
+ break;
+
+diff --git a/test/ChangeLog b/test/ChangeLog
+index a73637bf..ea08edee 100644
+--- a/test/ChangeLog
++++ b/test/ChangeLog
+@@ -1,3 +1,8 @@
++2022-09-14 Arnold D. Robbins <arnold at skeeve.com>
++
++ * Makefile.am (EXTRA_DIST): New test: elemnew1.
++ * elemnew1.awk, elemnew1.ok: New files.
++
+ 2022-09-04 Arnold D. Robbins <arnold at skeeve.com>
+
+ * 5.2.0: Release tar ball made.
+diff --git a/test/Makefile.am b/test/Makefile.am
+index ab06974c..8a5c3c49 100644
+--- a/test/Makefile.am
++++ b/test/Makefile.am
+@@ -282,6 +282,8 @@ EXTRA_DIST = \
+ dumpvars.ok \
+ dynlj.awk \
+ dynlj.ok \
++ elemnew1.awk \
++ elemnew1.ok \
+ escapebrace.awk \
+ escapebrace.in \
+ escapebrace.ok \
+@@ -1480,7 +1482,7 @@ GAWK_EXT_TESTS = \
+ binmode1 charasbytes clos1way clos1way2 clos1way3 clos1way4 \
+ clos1way5 clos1way6 colonwarn commas crlf dbugeval dbugeval2 \
+ dbugeval3 dbugtypedre1 dbugtypedre2 delsub devfd devfd1 devfd2 \
+- dfacheck1 dumpvars errno exit fieldwdth forcenum fpat1 fpat2 \
++ dfacheck1 dumpvars elemnew1 errno exit fieldwdth forcenum fpat1 fpat2 \
+ fpat3 fpat4 fpat5 fpat6 fpat7 fpat8 fpat9 fpatnull fsfwfs functab1 \
+ functab2 functab3 functab6 funlen fwtest fwtest2 fwtest3 fwtest4 \
+ fwtest5 fwtest6 fwtest7 fwtest8 genpot gensub gensub2 gensub3 \
+diff --git a/test/Makefile.in b/test/Makefile.in
+index 834feb09..a4fb1cc1 100644
+--- a/test/Makefile.in
++++ b/test/Makefile.in
+@@ -550,6 +550,8 @@ EXTRA_DIST = \
+ dumpvars.ok \
+ dynlj.awk \
+ dynlj.ok \
++ elemnew1.awk \
++ elemnew1.ok \
+ escapebrace.awk \
+ escapebrace.in \
+ escapebrace.ok \
+@@ -1748,7 +1750,7 @@ GAWK_EXT_TESTS = \
+ binmode1 charasbytes clos1way clos1way2 clos1way3 clos1way4 \
+ clos1way5 clos1way6 colonwarn commas crlf dbugeval dbugeval2 \
+ dbugeval3 dbugtypedre1 dbugtypedre2 delsub devfd devfd1 devfd2 \
+- dfacheck1 dumpvars errno exit fieldwdth forcenum fpat1 fpat2 \
++ dfacheck1 dumpvars elemnew1 errno exit fieldwdth forcenum fpat1 fpat2 \
+ fpat3 fpat4 fpat5 fpat6 fpat7 fpat8 fpat9 fpatnull fsfwfs functab1 \
+ functab2 functab3 functab6 funlen fwtest fwtest2 fwtest3 fwtest4 \
+ fwtest5 fwtest6 fwtest7 fwtest8 genpot gensub gensub2 gensub3 \
+@@ -4476,6 +4478,11 @@ dfacheck1:
+ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
++elemnew1:
++ @echo $@
++ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
++ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
++
+ exit:
+ @echo $@
+ @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/$@.sh > _$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+diff --git a/test/Maketests b/test/Maketests
+index 3a667af8..90828e7f 100644
+--- a/test/Maketests
++++ b/test/Maketests
+@@ -1432,6 +1432,11 @@ dfacheck1:
+ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
++elemnew1:
++ @echo $@
++ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
++ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
++
+ exit:
+ @echo $@
+ @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/$@.sh > _$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+diff --git a/test/elemnew1.awk b/test/elemnew1.awk
+new file mode 100644
+index 00000000..58dc9fcd
+--- /dev/null
++++ b/test/elemnew1.awk
+@@ -0,0 +1,9 @@
++function add_flags(old) {
++ if (old)
++ return 0
++ if (!old)
++ return 1
++}
++BEGIN {
++ a[0]=add_flags(a[0])
++}
+diff --git a/test/elemnew1.ok b/test/elemnew1.ok
+new file mode 100644
+index 00000000..e69de29b
+--
+2.34.1
+
More information about the buildroot
mailing list