Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package bash for openSUSE:Factory checked in at 2025-11-28 16:50:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bash (Old) and /work/SRC/openSUSE:Factory/.bash.new.14147 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bash" Fri Nov 28 16:50:28 2025 rev:203 rq:1320336 version:5.3.MACRO Changes: -------- --- /work/SRC/openSUSE:Factory/bash/bash.changes 2025-11-24 14:05:08.923093780 +0100 +++ /work/SRC/openSUSE:Factory/.bash.new.14147/bash.changes 2025-11-28 16:50:30.724171197 +0100 @@ -1,0 +2,27 @@ +Thu Nov 27 08:52:56 UTC 2025 - Dr. Werner Fink <[email protected]> + +- Add upstream patches + * Bash-5.3 Official patch 4 -- bash53-004 + 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). + * Bash-5.3 Official patch 5 -- bash53-005 + Restoring the default disposition in a subshell for a signal bash treats + specially can cause a crash. + * Bash-5.3 Official patch 6 -- bash53-006 + 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. + * Bash-5.3 Official patch 7 -- bash53-007 + No-fork command substitutions can perform redirections that act on the + enclosing command as well. + * Bash-5.3 Official patch 8 -- bash53-008 + 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. +- Remove patch boo1254087.patch now upstream with bash53-004 + +------------------------------------------------------------------- Old: ---- boo1254087.patch ----------(Old B)---------- Old: encoding null wide characters with non-null bytes. - Remove patch boo1254087.patch now upstream with bash53-004 ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bash.spec ++++++ --- /var/tmp/diff_new_pack.ZjTuEj/_old 2025-11-28 16:50:33.956307298 +0100 +++ /var/tmp/diff_new_pack.ZjTuEj/_new 2025-11-28 16:50:33.964307634 +0100 @@ -87,8 +87,7 @@ # PATCH-FIX-SUSE Patch50: quotes-man2html.patch # PATCH-UPSTREAM-CHERRY-PICKED -Patch51: boo1254087.patch -Patch52: risc-v.patch +Patch51: risc-v.patch BuildRequires: autoconf # latest bash uses with patch 18 the tag YYEOF BuildRequires: bison @@ -277,8 +276,7 @@ %endif %patch -P49 -b .pthtmp %patch -P50 -b .qd -%patch -P51 -p1 -b .shortreads -%patch -P52 -p1 -b .riscv +%patch -P51 -p1 -b .riscv %patch -P0 -b .p0 # This has to be always the same version as included in the bash its self ++++++ bash-5.3-patches.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.3-patches/bash53-001 new/bash-5.3-patches/bash53-001 --- old/bash-5.3-patches/bash53-001 2025-07-23 17:23:37.000000000 +0200 +++ new/bash-5.3-patches/bash53-001 2025-07-28 12:43:36.771336631 +0200 @@ -15,7 +15,7 @@ Patch (apply with `patch -p0'): -*** ../bash-5.3/jobs.c Fri Mar 7 18:48:44 2025 +*** jobs.c Fri Mar 7 18:48:44 2025 --- jobs.c Mon Jul 14 10:25:13 2025 *************** *** 3539,3543 **** @@ -31,7 +31,7 @@ { pid = t->pid; -*** ../bash-5.3/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 +*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 --- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 *************** *** 26,30 **** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.3-patches/bash53-002 new/bash-5.3-patches/bash53-002 --- old/bash-5.3-patches/bash53-002 2025-07-23 17:23:46.000000000 +0200 +++ new/bash-5.3-patches/bash53-002 2025-07-28 12:43:36.787336343 +0200 @@ -15,7 +15,7 @@ Patch (apply with `patch -p0'): -*** ../bash-5.3-patched/lib/sh/anonfile.c Tue Jul 9 11:41:57 2024 +*** lib/sh/anonfile.c Tue Jul 9 11:41:57 2024 --- lib/sh/anonfile.c Thu Jul 17 11:03:23 2025 *************** *** 26,30 **** @@ -105,7 +105,7 @@ fd = anonshmopen (name, flag, fn); if (fd >= 0) -*** ../bash-5.3/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 +*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 --- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 *************** *** 26,30 **** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.3-patches/bash53-003 new/bash-5.3-patches/bash53-003 --- old/bash-5.3-patches/bash53-003 2025-07-23 17:23:58.000000000 +0200 +++ new/bash-5.3-patches/bash53-003 2025-07-28 12:43:36.795336199 +0200 @@ -16,7 +16,7 @@ Patch (apply with `patch -p0'): -*** ../bash-5.3-patched/subst.c Sun May 18 15:00:13 2025 +*** subst.c Sun May 18 15:00:13 2025 --- subst.c Fri Jul 11 09:48:44 2025 *************** *** 3796,3802 **** @@ -50,7 +50,7 @@ + #endif if (((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || dquote) && (sh_syntaxtab[c] & CBSDQUOTE) == 0) *r++ = '\\'; -*** ../bash-5.3/tests/quotearray.right Thu Nov 10 10:39:56 2022 +*** tests/quotearray.right Thu Nov 10 10:39:56 2022 --- tests/quotearray.right Thu Jul 10 15:40:27 2025 *************** *** 45,49 **** @@ -65,7 +65,7 @@ ! ./quotearray1.sub: line 68: 0],b[1: arithmetic syntax error: invalid arithmetic operator (error token is "],b[1") declare -a array 0 -*** ../bash-5.3/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 +*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 --- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 *************** *** 26,30 **** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.3-patches/bash53-004 new/bash-5.3-patches/bash53-004 --- old/bash-5.3-patches/bash53-004 1970-01-01 01:00:00.000000000 +0100 +++ new/bash-5.3-patches/bash53-004 2025-11-26 18:37:34.000000000 +0100 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.3 +Patch-ID: bash53-004 + +Bug-Reported-by: Emanuele Torre <[email protected]> +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_ */ Binary files old/bash-5.3-patches/bash53-004.sig and new/bash-5.3-patches/bash53-004.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.3-patches/bash53-005 new/bash-5.3-patches/bash53-005 --- old/bash-5.3-patches/bash53-005 1970-01-01 01:00:00.000000000 +0100 +++ new/bash-5.3-patches/bash53-005 2025-11-26 18:37:46.000000000 +0100 @@ -0,0 +1,42 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.3 +Patch-ID: bash53-005 + +Bug-Reported-by: [email protected] +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_ */ Binary files old/bash-5.3-patches/bash53-005.sig and new/bash-5.3-patches/bash53-005.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.3-patches/bash53-006 new/bash-5.3-patches/bash53-006 --- old/bash-5.3-patches/bash53-006 1970-01-01 01:00:00.000000000 +0100 +++ new/bash-5.3-patches/bash53-006 2025-11-26 18:37:57.000000000 +0100 @@ -0,0 +1,48 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.3 +Patch-ID: bash53-006 + +Bug-Reported-by: Duncan Roe <[email protected]> +Bug-Reference-ID: <aL0p/[email protected]> +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_ */ Binary files old/bash-5.3-patches/bash53-006.sig and new/bash-5.3-patches/bash53-006.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.3-patches/bash53-007 new/bash-5.3-patches/bash53-007 --- old/bash-5.3-patches/bash53-007 1970-01-01 01:00:00.000000000 +0100 +++ new/bash-5.3-patches/bash53-007 2025-11-26 18:38:08.000000000 +0100 @@ -0,0 +1,56 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.3 +Patch-ID: bash53-007 + +Bug-Reported-by: [email protected] +Bug-Reference-ID: <[email protected]> +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_ */ Binary files old/bash-5.3-patches/bash53-007.sig and new/bash-5.3-patches/bash53-007.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.3-patches/bash53-008 new/bash-5.3-patches/bash53-008 --- old/bash-5.3-patches/bash53-008 1970-01-01 01:00:00.000000000 +0100 +++ new/bash-5.3-patches/bash53-008 2025-11-26 18:38:18.000000000 +0100 @@ -0,0 +1,231 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.3 +Patch-ID: bash53-008 + +Bug-Reported-by: Grisha Levit <[email protected]> +Bug-Reference-ID: <[email protected]> +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_ */ Binary files old/bash-5.3-patches/bash53-008.sig and new/bash-5.3-patches/bash53-008.sig differ
