Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: James Hilliard <james.hilliard1@gmail.com>
To: buildroot@buildroot.org
Cc: James Hilliard <james.hilliard1@gmail.com>
Subject: [Buildroot] [PATCH 1/1] package/gawk: fix double free during kernel build
Date: Sun, 30 Oct 2022 15:54:58 -0600	[thread overview]
Message-ID: <20221030215458.3773991-1-james.hilliard1@gmail.com> (raw)

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@gmail.com>
---
 .../0002-Fix-a-bug-with-Node_elem_new.patch   | 155 ++++++++++++++++++
 1 file changed, 155 insertions(+)
 create mode 100644 package/gawk/0002-Fix-a-bug-with-Node_elem_new.patch

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@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@gmail.com>
+[james.hilliard1@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@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@gmail.com> for the report,
++	and to Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
++	for the fix.
++	
+ 2022-09-04         Arnold D. Robbins     <arnold@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@skeeve.com>
++
++	* Makefile.am (EXTRA_DIST): New test: elemnew1.
++	* elemnew1.awk, elemnew1.ok: New files.
++
+ 2022-09-04         Arnold D. Robbins     <arnold@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
+
-- 
2.34.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

             reply	other threads:[~2022-10-30 21:55 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-30 21:54 James Hilliard [this message]
2022-10-31  7:50 ` [Buildroot] [PATCH 1/1] package/gawk: fix double free during kernel build Yann E. MORIN
2022-10-31 14:34 ` Yann E. MORIN
2022-11-13 16:10 ` Peter Korsgaard
2022-11-13 16:32   ` James Hilliard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221030215458.3773991-1-james.hilliard1@gmail.com \
    --to=james.hilliard1@gmail.com \
    --cc=buildroot@buildroot.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox