bash: Update to version 5.1.016

- Update from 5.1.012 to 5.1.016
- Update of rootfile not required
- Changelog
   Patch 013 - Bash did not always perform tilde expansion following an unquoted colon on
               the rhs of an assignment statement in posix mode.
   Patch 014 - Bash may produce corrupted input if a multibyte character spans a 512-byte
               boundary while reading the output of a command substitution.
   Patch 015 - 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.
   Patch 016 - Multiple `!' tokens should toggle negation of an expression in a [[
               conditional command, instead of simply negating the expression.

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
This commit is contained in:
Adolf Belka
2022-02-06 13:38:13 +01:00
committed by Peter Müller
parent 146a6b136b
commit d675dade61
5 changed files with 205 additions and 1 deletions

View File

@@ -87,7 +87,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
sed -e "s/filename, RTLD_LAZY/filename, RTLD_NOW/" \
-i $(DIR_APP)/builtins/enable.def
for i in $$(seq 9 12); do \
for i in $$(seq 9 16); do \
cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/bash/bash51-$$(printf "%03d" "$${i}") || exit 1; \
done

View File

@@ -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_ */

View File

@@ -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_ */

View File

@@ -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_ */

View File

@@ -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_ */