bash ver. bump
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 5.3
|
||||
Patch-ID: bash53-004
|
||||
|
||||
Bug-Reported-by: Emanuele Torre <torreemanuele6@gmail.com>
|
||||
Bug-Reference-ID: <aHKS0uA8Sf_vMT25@ntoo>
|
||||
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2025-07/msg00031.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
The Linux kernel reports incorrect sizes for files in /sys/block/*/uevent,
|
||||
leading bash to report a read error when the byte count does not agree
|
||||
with the file size from fstat(2).
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../bash-5.3-patched/builtins/evalfile.c Fri Sep 6 15:42:40 2024
|
||||
--- builtins/evalfile.c Fri Sep 12 11:38:57 2025
|
||||
***************
|
||||
*** 161,166 ****
|
||||
--- 161,168 ----
|
||||
if (nr >= 0)
|
||||
string[nr] = '\0';
|
||||
+ #if 0
|
||||
if (nr != file_size)
|
||||
nr = -1; /* XXX - didn't get the whole file */
|
||||
+ #endif
|
||||
}
|
||||
else
|
||||
|
||||
*** ../bash-5.3/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 3
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 4
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -0,0 +1,42 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 5.3
|
||||
Patch-ID: bash53-005
|
||||
|
||||
Bug-Reported-by: chet.ramey@case.edu
|
||||
Bug-Reference-ID:
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Restoring the default disposition in a subshell for a signal bash treats
|
||||
specially can cause a crash.
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../bash-5.3-patched/trap.c Thu Dec 19 11:35:49 2024
|
||||
--- trap.c Fri Nov 7 11:23:31 2025
|
||||
***************
|
||||
*** 965,968 ****
|
||||
--- 965,969 ----
|
||||
set_signal_handler (sig, SIG_DFL);
|
||||
change_signal (sig, (char *)DEFAULT_SIG);
|
||||
+ sigmodes[sig] &= ~SIG_TRAPPED; /* no longer trapped */
|
||||
return;
|
||||
}
|
||||
*** ../bash-5.3/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 4
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 5
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -0,0 +1,48 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 5.3
|
||||
Patch-ID: bash53-006
|
||||
|
||||
Bug-Reported-by: Duncan Roe <duncan_roe@optusnet.com.au>
|
||||
Bug-Reference-ID: <aL0p/3BQeCLc6krz@dimstar.local.net>
|
||||
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2025-09/msg00053.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When `globasciiranges' is enabled, glob patterns with ranges in bracket
|
||||
expressions can produce incorrect matches for character ranges whose
|
||||
start and end are non-ascii characters.
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../bash-5.3-patched/lib/glob/smatch.c Mon May 29 14:15:17 2023
|
||||
--- lib/glob/smatch.c Mon Sep 8 12:54:59 2025
|
||||
***************
|
||||
*** 391,395 ****
|
||||
return 0;
|
||||
|
||||
! if (forcecoll == 0 && glob_asciirange && c1 <= UCHAR_MAX && c2 <= UCHAR_MAX)
|
||||
return ((int)(c1 - c2));
|
||||
|
||||
--- 391,395 ----
|
||||
return 0;
|
||||
|
||||
! if (forcecoll == 0 && glob_asciirange)
|
||||
return ((int)(c1 - c2));
|
||||
|
||||
*** ../bash-5.3/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 5
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 6
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -0,0 +1,56 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 5.3
|
||||
Patch-ID: bash53-007
|
||||
|
||||
Bug-Reported-by: jdhedden@gmail.com
|
||||
Bug-Reference-ID: <689ac876.050a0220.334a3f.30fb@mx.google.com>
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
No-fork command substitutions can perform redirections that act on the
|
||||
enclosing command as well.
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../bash-5.3-patched/subst.c Fri Jul 25 08:53:25 2025
|
||||
--- subst.c Tue Aug 12 15:41:01 2025
|
||||
***************
|
||||
*** 207,210 ****
|
||||
--- 207,212 ----
|
||||
extern int extended_quote;
|
||||
|
||||
+ extern REDIRECT *exec_redirection_undo_list, *redirection_undo_list;
|
||||
+
|
||||
#if !defined (HAVE_WCSDUP) && defined (HANDLE_MULTIBYTE)
|
||||
extern wchar_t *wcsdup (const wchar_t *);
|
||||
***************
|
||||
*** 7001,7004 ****
|
||||
--- 7003,7011 ----
|
||||
}
|
||||
#endif
|
||||
+
|
||||
+ unwind_protect_pointer (redirection_undo_list);
|
||||
+ redirection_undo_list = NULL;
|
||||
+ unwind_protect_pointer (exec_redirection_undo_list);
|
||||
+ exec_redirection_undo_list = NULL;
|
||||
|
||||
subst_assign_varlist = 0;
|
||||
|
||||
*** ../bash-5.3/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 6
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 7
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -0,0 +1,231 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 5.3
|
||||
Patch-ID: bash53-008
|
||||
|
||||
Bug-Reported-by: Grisha Levit <grishalevit@gmail.com>
|
||||
Bug-Reference-ID: <20251022174207.10518-1-grishalevit@gmail.com>
|
||||
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2025-10/msg00145.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Bash tries to consume entire multibyte characters when looking for backslash
|
||||
escapes in $'...' strings, and treats too many characters as potentially
|
||||
beginning a multibyte character in UTF-8 locales. Being more selective about
|
||||
when to call mbrtowc() can lead to optimized string processing and script
|
||||
speedups. This patch also handles the unlikely situation of a locale
|
||||
encoding null wide characters with non-null bytes.
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../bash-5.3-patched/lib/sh/strtrans.c Fri Oct 13 11:57:46 2023
|
||||
--- lib/sh/strtrans.c Mon Oct 27 14:30:35 2025
|
||||
***************
|
||||
*** 56,60 ****
|
||||
unsigned long v;
|
||||
size_t clen;
|
||||
! int mb_cur_max;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
wchar_t wc;
|
||||
--- 56,60 ----
|
||||
unsigned long v;
|
||||
size_t clen;
|
||||
! size_t mb_cur_max;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
wchar_t wc;
|
||||
***************
|
||||
*** 64,68 ****
|
||||
return ((char *)0);
|
||||
|
||||
! mb_cur_max = MB_CUR_MAX;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
temp = 4*len + 4;
|
||||
--- 64,68 ----
|
||||
return ((char *)0);
|
||||
|
||||
! mb_cur_max = locale_mb_cur_max;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
temp = 4*len + 4;
|
||||
***************
|
||||
*** 80,87 ****
|
||||
clen = 1;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
! if ((locale_utf8locale && (c & 0x80)) ||
|
||||
! (locale_utf8locale == 0 && mb_cur_max > 0 && is_basic (c) == 0))
|
||||
{
|
||||
clen = mbrtowc (&wc, s - 1, mb_cur_max, 0);
|
||||
if (MB_INVALIDCH (clen))
|
||||
clen = 1;
|
||||
--- 80,91 ----
|
||||
clen = 1;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
! /* We read an entire multibyte character at a time if we are in a
|
||||
! locale where a backslash can possibly appear as part of a
|
||||
! multibyte character. UTF-8 encodings prohibit this. */
|
||||
! if (locale_utf8locale == 0 && mb_cur_max > 1 && is_basic (c) == 0)
|
||||
{
|
||||
clen = mbrtowc (&wc, s - 1, mb_cur_max, 0);
|
||||
+ if (MB_NULLWCH (clen))
|
||||
+ break; /* it apparently can happen */
|
||||
if (MB_INVALIDCH (clen))
|
||||
clen = 1;
|
||||
***************
|
||||
*** 228,237 ****
|
||||
char *r, *ret;
|
||||
const char *s;
|
||||
- size_t l, rsize;
|
||||
unsigned char c;
|
||||
size_t clen;
|
||||
int b;
|
||||
- #if defined (HANDLE_MULTIBYTE)
|
||||
wchar_t wc;
|
||||
#endif
|
||||
|
||||
--- 232,241 ----
|
||||
char *r, *ret;
|
||||
const char *s;
|
||||
unsigned char c;
|
||||
+ #if defined (HANDLE_MULTIBYTE)
|
||||
size_t clen;
|
||||
int b;
|
||||
wchar_t wc;
|
||||
+ DECLARE_MBSTATE;
|
||||
#endif
|
||||
|
||||
***************
|
||||
*** 239,245 ****
|
||||
return ((char *)0);
|
||||
|
||||
! l = strlen (str);
|
||||
! rsize = 4 * l + 4;
|
||||
! r = ret = (char *)xmalloc (rsize);
|
||||
|
||||
*r++ = '$';
|
||||
--- 243,247 ----
|
||||
return ((char *)0);
|
||||
|
||||
! r = ret = (char *)xmalloc (4 * strlen (str) + 4);
|
||||
|
||||
*r++ = '$';
|
||||
***************
|
||||
*** 248,255 ****
|
||||
for (s = str; c = *s; s++)
|
||||
{
|
||||
- b = 1; /* 1 == add backslash; 0 == no backslash */
|
||||
- l = 1;
|
||||
- clen = 1;
|
||||
-
|
||||
switch (c)
|
||||
{
|
||||
--- 250,253 ----
|
||||
***************
|
||||
*** 267,303 ****
|
||||
default:
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
! b = is_basic (c);
|
||||
! /* XXX - clen comparison to 0 is dicey */
|
||||
! if ((b == 0 && ((clen = mbrtowc (&wc, s, MB_CUR_MAX, 0)) < 0 || MB_INVALIDCH (clen) || iswprint (wc) == 0)) ||
|
||||
! (b == 1 && ISPRINT (c) == 0))
|
||||
! #else
|
||||
! if (ISPRINT (c) == 0)
|
||||
! #endif
|
||||
{
|
||||
! *r++ = '\\';
|
||||
! *r++ = TOCHAR ((c >> 6) & 07);
|
||||
! *r++ = TOCHAR ((c >> 3) & 07);
|
||||
! *r++ = TOCHAR (c & 07);
|
||||
! continue;
|
||||
}
|
||||
! l = 0;
|
||||
! break;
|
||||
! }
|
||||
! if (b == 0 && clen == 0)
|
||||
! break;
|
||||
|
||||
! if (l)
|
||||
! *r++ = '\\';
|
||||
!
|
||||
! if (clen == 1)
|
||||
! *r++ = c;
|
||||
! else
|
||||
! {
|
||||
! for (b = 0; b < (int)clen; b++)
|
||||
! *r++ = (unsigned char)s[b];
|
||||
! s += clen - 1; /* -1 because of the increment above */
|
||||
}
|
||||
}
|
||||
|
||||
*r++ = '\'';
|
||||
*r = '\0';
|
||||
--- 265,304 ----
|
||||
default:
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
! if ((locale_utf8locale && (c & 0x80)) ||
|
||||
! (locale_utf8locale == 0 && locale_mb_cur_max > 1 && is_basic (c) == 0))
|
||||
{
|
||||
! clen = mbrtowc (&wc, s, locale_mb_cur_max, &state);
|
||||
! if (MB_NULLWCH (clen))
|
||||
! goto quote_end;
|
||||
! if (MB_INVALIDCH (clen))
|
||||
! INITIALIZE_MBSTATE;
|
||||
! else if (iswprint (wc))
|
||||
! {
|
||||
! for (b = 0; b < (int)clen; b++)
|
||||
! *r++ = (unsigned char)s[b];
|
||||
! s += clen - 1; /* -1 because of the increment above */
|
||||
! continue;
|
||||
! }
|
||||
}
|
||||
! else
|
||||
! #endif
|
||||
! if (ISPRINT (c))
|
||||
! {
|
||||
! *r++ = c;
|
||||
! continue;
|
||||
! }
|
||||
|
||||
! *r++ = '\\';
|
||||
! *r++ = TOCHAR ((c >> 6) & 07);
|
||||
! *r++ = TOCHAR ((c >> 3) & 07);
|
||||
! *r++ = TOCHAR (c & 07);
|
||||
! continue;
|
||||
}
|
||||
+
|
||||
+ *r++ = '\\';
|
||||
+ *r++ = c;
|
||||
}
|
||||
|
||||
+ quote_end:
|
||||
*r++ = '\'';
|
||||
*r = '\0';
|
||||
***************
|
||||
*** 349,353 ****
|
||||
{
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
! if (is_basic (c) == 0)
|
||||
return (ansic_wshouldquote (s));
|
||||
#endif
|
||||
--- 350,355 ----
|
||||
{
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
! if ((locale_utf8locale && (c & 0x80)) ||
|
||||
! (locale_utf8locale == 0 && locale_mb_cur_max > 1 && is_basic (c) == 0))
|
||||
return (ansic_wshouldquote (s));
|
||||
#endif
|
||||
|
||||
*** ../bash-5.3/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 7
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 8
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -22,6 +22,11 @@
|
||||
<Patch>official/bash53-001.patch</Patch>
|
||||
<Patch>official/bash53-002.patch</Patch>
|
||||
<Patch>official/bash53-003.patch</Patch>
|
||||
<Patch>official/bash53-004.patch</Patch>
|
||||
<Patch>official/bash53-005.patch</Patch>
|
||||
<Patch>official/bash53-006.patch</Patch>
|
||||
<Patch>official/bash53-007.patch</Patch>
|
||||
<Patch>official/bash53-008.patch</Patch>
|
||||
|
||||
<!-- Fedora patches -->
|
||||
<!-- <Patch level="1">fedora/bash-2.03-paths.patch</Patch> -->
|
||||
@@ -71,6 +76,13 @@
|
||||
</Package>
|
||||
|
||||
<History>
|
||||
<Update release="21">
|
||||
<Date>2025-12-01</Date>
|
||||
<Version>5.3.3</Version>
|
||||
<Comment>Version bump.</Comment>
|
||||
<Name>Pisi Linux Community</Name>
|
||||
<Email>admin@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="20">
|
||||
<Date>2025-11-16</Date>
|
||||
<Version>5.3.3</Version>
|
||||
|
||||
Reference in New Issue
Block a user