From 6903ff55c6d09448c3729423251670cc041efd7b Mon Sep 17 00:00:00 2001
From: Andreas Wacknitz <A.Wacknitz@gmx.de>
Date: Fri, 07 Jan 2022 08:20:10 +0100
Subject: [PATCH] bash: update to 5.1p16

---
 components/shell/bash/patches/bash51-015.patch |   49 ++++++++++++
 components/shell/bash/Makefile                 |    2 
 components/shell/bash/patches/bash51-013.patch |   43 ++++++++++
 components/shell/bash/patches/bash51-014.patch |   48 ++++++++++++
 components/shell/bash/patches/bash51-016.patch |   64 ++++++++++++++++
 5 files changed, 205 insertions(+), 1 deletions(-)

diff --git a/components/shell/bash/Makefile b/components/shell/bash/Makefile
index 9995aba..9d38d8b 100644
--- a/components/shell/bash/Makefile
+++ b/components/shell/bash/Makefile
@@ -37,7 +37,7 @@
 COMPONENT_PROJECT_URL=	https://www.gnu.org/software/bash/
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH = sha256:cc012bc860406dcf42f64431bcd3d2fa7560c02915a601aba9cd597a39329baa
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/bash/$(COMPONENT_ARCHIVE)
+COMPONENT_ARCHIVE_URL=	https://ftp.gnu.org/gnu/bash/$(COMPONENT_ARCHIVE)
 COMPONENT_LICENSE=	GPLv3, FDLv1.2
 
 include $(WS_MAKE_RULES)/common.mk
diff --git a/components/shell/bash/patches/bash51-013.patch b/components/shell/bash/patches/bash51-013.patch
new file mode 100644
index 0000000..f2413a5
--- /dev/null
+++ b/components/shell/bash/patches/bash51-013.patch
@@ -0,0 +1,43 @@
+			     BASH PATCH REPORT
+			     =================
+
+Bash-Release:	5.1
+Patch-ID:	bash51-013
+
+Bug-Reported-by:	Anders Kaseorg <andersk@mit.edu>
+Bug-Reference-ID:	<de65540274064d7b95f17e9c46a3a6d8@oc11expo7.exchange.mit.edu>
+Bug-Reference-URL:	https://lists.gnu.org/archive/html/bug-bash/2021-11/msg00025.html
+
+Bug-Description:
+
+Bash did not always perform tilde expansion following an unquoted colon on
+the rhs of an assignment statement in posix mode.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-20211028/subst.c	2021-10-18 16:09:58.000000000 -0400
+--- subst.c	2021-11-30 11:19:47.000000000 -0500
+***************
+*** 3826,3829 ****
+--- 3826,3830 ----
+    td.flags = W_ASSIGNRHS;
+  #endif
++   td.flags |= (W_NOGLOB|W_TILDEEXP);
+    td.word = savestring (string);
+    value = call_expand_word_internal (&td, quoted, 0, (int *)NULL, (int *)NULL);
+
+*** ../bash-5.1/patchlevel.h	2020-06-22 14:51:03.000000000 -0400
+--- patchlevel.h	2020-10-01 11:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 12
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 13
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/components/shell/bash/patches/bash51-014.patch b/components/shell/bash/patches/bash51-014.patch
new file mode 100644
index 0000000..cd8df23
--- /dev/null
+++ b/components/shell/bash/patches/bash51-014.patch
@@ -0,0 +1,48 @@
+			     BASH PATCH REPORT
+			     =================
+
+Bash-Release:	5.1
+Patch-ID:	bash51-014
+
+Bug-Reported-by:	platon7pronko@gmail.com
+Bug-Reference-ID:
+Bug-Reference-URL:	https://savannah.gnu.org/patch/?10035
+
+Bug-Description:
+
+Bash may produce corrupted input if a multibyte character spans a 512-byte
+boundary while reading the output of a command substitution.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-20210217/subst.c	2021-02-03 10:32:08.000000000 -0500
+--- subst.c	2021-03-01 16:47:52.000000000 -0500
+***************
+*** 6243,6247 ****
+  	  /* punt on the hard case for now */
+  	  memset (&ps, '\0', sizeof (mbstate_t));
+! 	  mblen = mbrtowc (&wc, bufp-1, bufn+1, &ps);
+  	  if (MB_INVALIDCH (mblen) || mblen == 0 || mblen == 1)
+  	    istring[istring_index++] = c;
+--- 6243,6247 ----
+  	  /* punt on the hard case for now */
+  	  memset (&ps, '\0', sizeof (mbstate_t));
+! 	  mblen = mbrtowc (&wc, bufp-1, bufn, &ps);
+  	  if (MB_INVALIDCH (mblen) || mblen == 0 || mblen == 1)
+  	    istring[istring_index++] = c;
+
+*** ../bash-5.1/patchlevel.h	2020-06-22 14:51:03.000000000 -0400
+--- patchlevel.h	2020-10-01 11:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 13
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 14
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/components/shell/bash/patches/bash51-015.patch b/components/shell/bash/patches/bash51-015.patch
new file mode 100644
index 0000000..5ae6581
--- /dev/null
+++ b/components/shell/bash/patches/bash51-015.patch
@@ -0,0 +1,49 @@
+			     BASH PATCH REPORT
+			     =================
+
+Bash-Release:	5.1
+Patch-ID:	bash51-015
+
+Bug-Reported-by:	Volodymyr Prodan <vovcat@gmail.com>
+Bug-Reference-ID:
+Bug-Reference-URL:	https://savannah.gnu.org/patch/?10076
+
+Bug-Description:
+
+Patch (apply with `patch -p0'):
+
+There are some characters (e.g., cyrillic) that can't be displayed using
+certain single-byte encodings (e.g., cp1251) because the negative signed
+int is interpreted as EOF and not displayed.
+
+*** ../bash-20210524/lib/readline/display.c	2021-03-16 18:12:20.000000000 -0400
+--- lib/readline/display.c	2021-06-07 16:53:08.000000000 -0400
+***************
+*** 1599,1603 ****
+  
+    for (cur_face = FACE_NORMAL, i = 0; i < n; i++)
+!     putc_face (str[i], face[i], &cur_face);
+    putc_face (EOF, FACE_NORMAL, &cur_face);
+  }
+--- 1599,1603 ----
+  
+    for (cur_face = FACE_NORMAL, i = 0; i < n; i++)
+!     putc_face ((unsigned char) str[i], face[i], &cur_face);
+    putc_face (EOF, FACE_NORMAL, &cur_face);
+  }
+
+*** ../bash-5.1/patchlevel.h	2020-06-22 14:51:03.000000000 -0400
+--- patchlevel.h	2020-10-01 11:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 14
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 15
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/components/shell/bash/patches/bash51-016.patch b/components/shell/bash/patches/bash51-016.patch
new file mode 100644
index 0000000..4694498
--- /dev/null
+++ b/components/shell/bash/patches/bash51-016.patch
@@ -0,0 +1,64 @@
+			     BASH PATCH REPORT
+			     =================
+
+Bash-Release:	5.1
+Patch-ID:	bash51-016
+
+Bug-Reported-by:	Vincent Menegaux <vincent.menegaux@gmail.com>
+Bug-Reference-ID:
+Bug-Reference-URL:	https://savannah.gnu.org/patch/?10070
+
+Bug-Description:
+
+Multiple `!' tokens should toggle negation of an expression in a [[
+conditional command, instead of simply negating the expression.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-20210515/parse.y	2021-04-21 15:32:50.000000000 -0400
+--- parse.y	2021-05-24 11:53:30.000000000 -0400
+***************
+*** 4797,4801 ****
+        term = cond_term ();
+        if (term)
+! 	term->flags |= CMD_INVERT_RETURN;
+      }
+    else if (tok == WORD && yylval.word->word[0] == '-' && yylval.word->word[1] && yylval.word->word[2] == 0 && test_unop (yylval.word->word))
+--- 4797,4801 ----
+        term = cond_term ();
+        if (term)
+! 	term->flags ^= CMD_INVERT_RETURN;
+      }
+    else if (tok == WORD && yylval.word->word[0] == '-' && yylval.word->word[1] && yylval.word->word[2] == 0 && test_unop (yylval.word->word))
+
+*** ../bash-20210515/y.tab.c	2021-05-14 15:50:41.000000000 -0400
+--- y.tab.c	2021-05-24 16:35:55.000000000 -0400
+***************
+*** 7091,7095 ****
+        term = cond_term ();
+        if (term)
+! 	term->flags |= CMD_INVERT_RETURN;
+      }
+    else if (tok == WORD && yylval.word->word[0] == '-' && yylval.word->word[1] && yylval.word->word[2] == 0 && test_unop (yylval.word->word))
+--- 7091,7095 ----
+        term = cond_term ();
+        if (term)
+! 	term->flags ^= CMD_INVERT_RETURN;
+      }
+    else if (tok == WORD && yylval.word->word[0] == '-' && yylval.word->word[1] && yylval.word->word[2] == 0 && test_unop (yylval.word->word))
+
+*** ../bash-5.1/patchlevel.h	2020-06-22 14:51:03.000000000 -0400
+--- patchlevel.h	2020-10-01 11:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 15
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 16
+  
+  #endif /* _PATCHLEVEL_H_ */

--
Gitblit v1.9.3