forked from rpms/glibc
Auto-sync with upstream branch master
Upstream commit: f01a61e13872109b3b233158ab664364bd1879bc - Drop glibc-rh819430.patch; fixed upstream. - i386: Regenerate ulps - x86: Add CPU-specific diagnostics to ld.so --list-diagnostics - x86: Automate generation of PREFERRED_FEATURE_INDEX_1 bitfield - ld.so: Implement the --list-diagnostics option - powerpc: Update libm-test-ulps - tst: Add test for utimes - tst: Add test for utime - tst: Add test for futimens - nptl: __libc_cleanup_push/__libc_cleanup_pop require -fexceptions - elf: Build __dl_iterate_phdr with unwinding support [BZ #27498] - nptl: Use <unwind-link.h> for accessing the libgcc_s unwinder - Implement _Unwind_Resume in libc on top of <unwind-link.h> - Move sysdeps/gnu/unwind-resume.c to sysdeps/generic/unwind-resume.c - __frame_state_for: Use <unwind-link.h> for unwinder access - sparc: Implement backtrace on top <unwind-link.h> - m68k: Implement backtrace on top of <unwind-link.h> - i386: Implement backtrace on top of <unwind-link.h> - arm: Implement backtrace on top of <unwind-link.h> - backtrace: Implement on top of <unwind-link.h> - Implement <unwind-link.h> for dynamically loading the libgcc_s unwinder - Correct buffer end pointer in IO_wdefault_doallocate (BZ #26874) - aarch64: update ulps. - Add inputs that generate larger error bounds - Reduce the statically linked startup code [BZ #23323] - posix: Falling back to non wide mode in case of encoding error [BZ #14185] - nptl: Move elision implementations into libc - NEWS: Add missing bug closures - added rt to malloc/Depend [BZ #27132] - x86: Use x86/nptl/pthreaddef.h - nptl: Move futex-internal into libc - nptl: Move lowlevellock into libc [BZ #15648] - nptl: Move futex-internal.c into main nptl directory - nptl: Reformat Versions - nptl: Split libpthread-routines into one routine per line - x86: Remove unused variables for raw cache sizes from cacheinfo.h - Use Linux 5.11 in build-many-glibcs.py. - <bits/platform/x86.h>: Correct x86_cpu_TBM - x86_64/clone.S: Upate comments - i386/clone.S: Remove redundant EBX load - aarch64: Remove the unused __read_tp symbol - build-many-glibcs.py: Use make -O for more consistent log output
This commit is contained in:
parent
7ae5ae4a36
commit
9eea788618
@ -1,93 +0,0 @@
|
||||
Short description: fnmatch() fails with MBCS.
|
||||
Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
|
||||
Origin: PATCH
|
||||
Bug-RHEL: #819430, #826149, #826151
|
||||
Bug-Upstream: #14185
|
||||
Upstream status: not-submitted
|
||||
|
||||
fnmatch() fails when '*' wildcard is applied on the file name
|
||||
containing multi-byte character(s)
|
||||
|
||||
This needs to be reviewed thoroughly and go upstream with a
|
||||
new test case.
|
||||
|
||||
|
||||
diff --git a/posix/fnmatch.c b/posix/fnmatch.c
|
||||
index 5896812c966ac7c6..63df3dae0911030f 100644
|
||||
--- a/posix/fnmatch.c
|
||||
+++ b/posix/fnmatch.c
|
||||
@@ -237,6 +237,7 @@ fnmatch (const char *pattern, const char *string, int flags)
|
||||
{
|
||||
if (__glibc_unlikely (MB_CUR_MAX != 1))
|
||||
{
|
||||
+ const char *orig_pattern = pattern;
|
||||
mbstate_t ps;
|
||||
size_t n;
|
||||
const char *p;
|
||||
@@ -256,10 +257,8 @@ fnmatch (const char *pattern, const char *string, int flags)
|
||||
alloca_used);
|
||||
n = mbsrtowcs (wpattern, &p, n + 1, &ps);
|
||||
if (__glibc_unlikely (n == (size_t) -1))
|
||||
- /* Something wrong.
|
||||
- XXX Do we have to set 'errno' to something which mbsrtows hasn't
|
||||
- already done? */
|
||||
- return -1;
|
||||
+ /* Something wrong: Fall back to single byte matching. */
|
||||
+ goto try_singlebyte;
|
||||
if (p)
|
||||
{
|
||||
memset (&ps, '\0', sizeof (ps));
|
||||
@@ -271,10 +270,8 @@ fnmatch (const char *pattern, const char *string, int flags)
|
||||
prepare_wpattern:
|
||||
n = mbsrtowcs (NULL, &pattern, 0, &ps);
|
||||
if (__glibc_unlikely (n == (size_t) -1))
|
||||
- /* Something wrong.
|
||||
- XXX Do we have to set 'errno' to something which mbsrtows hasn't
|
||||
- already done? */
|
||||
- return -1;
|
||||
+ /* Something wrong: Fall back to single byte matching. */
|
||||
+ goto try_singlebyte;
|
||||
if (__glibc_unlikely (n >= (size_t) -1 / sizeof (wchar_t)))
|
||||
{
|
||||
__set_errno (ENOMEM);
|
||||
@@ -297,14 +294,8 @@ fnmatch (const char *pattern, const char *string, int flags)
|
||||
alloca_used);
|
||||
n = mbsrtowcs (wstring, &p, n + 1, &ps);
|
||||
if (__glibc_unlikely (n == (size_t) -1))
|
||||
- {
|
||||
- /* Something wrong.
|
||||
- XXX Do we have to set 'errno' to something which
|
||||
- mbsrtows hasn't already done? */
|
||||
- free_return:
|
||||
- free (wpattern_malloc);
|
||||
- return -1;
|
||||
- }
|
||||
+ /* Something wrong: Fall back to single byte matching. */
|
||||
+ goto free_and_try_singlebyte;
|
||||
if (p)
|
||||
{
|
||||
memset (&ps, '\0', sizeof (ps));
|
||||
@@ -316,10 +307,8 @@ fnmatch (const char *pattern, const char *string, int flags)
|
||||
prepare_wstring:
|
||||
n = mbsrtowcs (NULL, &string, 0, &ps);
|
||||
if (__glibc_unlikely (n == (size_t) -1))
|
||||
- /* Something wrong.
|
||||
- XXX Do we have to set 'errno' to something which mbsrtows hasn't
|
||||
- already done? */
|
||||
- goto free_return;
|
||||
+ /* Something wrong: Fall back to singlebyte matching. */
|
||||
+ goto free_and_try_singlebyte;
|
||||
if (__glibc_unlikely (n >= (size_t) -1 / sizeof (wchar_t)))
|
||||
{
|
||||
free (wpattern_malloc);
|
||||
@@ -346,6 +335,10 @@ fnmatch (const char *pattern, const char *string, int flags)
|
||||
free (wpattern_malloc);
|
||||
|
||||
return res;
|
||||
+ free_and_try_singlebyte:
|
||||
+ free(wpattern_malloc);
|
||||
+ try_singlebyte:
|
||||
+ pattern = orig_pattern;
|
||||
}
|
||||
|
||||
return internal_fnmatch (pattern, string, string + strlen (string),
|
51
glibc.spec
51
glibc.spec
@ -1,4 +1,4 @@
|
||||
%define glibcsrcdir glibc-2.33.9000-73-ge9e7f24543
|
||||
%define glibcsrcdir glibc-2.33.9000-114-gf01a61e138
|
||||
%define glibcversion 2.33.9000
|
||||
# Pre-release tarballs are pulled in from git using a command that is
|
||||
# effectively:
|
||||
@ -96,7 +96,7 @@
|
||||
Summary: The GNU libc libraries
|
||||
Name: glibc
|
||||
Version: %{glibcversion}
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
|
||||
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
|
||||
# libraries.
|
||||
@ -145,7 +145,6 @@ Patch4: glibc-fedora-linux-tcsetattr.patch
|
||||
Patch6: glibc-fedora-localedef.patch
|
||||
Patch8: glibc-fedora-manual-dircategory.patch
|
||||
Patch9: glibc-rh827510.patch
|
||||
Patch12: glibc-rh819430.patch
|
||||
Patch13: glibc-fedora-localedata-rh61908.patch
|
||||
Patch15: glibc-rh1070416.patch
|
||||
Patch16: glibc-nscd-sysconfig.patch
|
||||
@ -2290,6 +2289,52 @@ fi
|
||||
%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
|
||||
|
||||
%changelog
|
||||
* Wed Mar 03 2021 Arjun Shankar <arjun@redhat.com> - 2.33.9000-3
|
||||
- Drop glibc-rh819430.patch; fixed upstream.
|
||||
- Auto-sync with upstream branch master,
|
||||
commit f01a61e13872109b3b233158ab664364bd1879bc:
|
||||
- i386: Regenerate ulps
|
||||
- x86: Add CPU-specific diagnostics to ld.so --list-diagnostics
|
||||
- x86: Automate generation of PREFERRED_FEATURE_INDEX_1 bitfield
|
||||
- ld.so: Implement the --list-diagnostics option
|
||||
- powerpc: Update libm-test-ulps
|
||||
- tst: Add test for utimes
|
||||
- tst: Add test for utime
|
||||
- tst: Add test for futimens
|
||||
- nptl: __libc_cleanup_push/__libc_cleanup_pop require -fexceptions
|
||||
- elf: Build __dl_iterate_phdr with unwinding support [BZ #27498]
|
||||
- nptl: Use <unwind-link.h> for accessing the libgcc_s unwinder
|
||||
- Implement _Unwind_Resume in libc on top of <unwind-link.h>
|
||||
- Move sysdeps/gnu/unwind-resume.c to sysdeps/generic/unwind-resume.c
|
||||
- __frame_state_for: Use <unwind-link.h> for unwinder access
|
||||
- sparc: Implement backtrace on top <unwind-link.h>
|
||||
- m68k: Implement backtrace on top of <unwind-link.h>
|
||||
- i386: Implement backtrace on top of <unwind-link.h>
|
||||
- arm: Implement backtrace on top of <unwind-link.h>
|
||||
- backtrace: Implement on top of <unwind-link.h>
|
||||
- Implement <unwind-link.h> for dynamically loading the libgcc_s unwinder
|
||||
- Correct buffer end pointer in IO_wdefault_doallocate (BZ #26874)
|
||||
- aarch64: update ulps.
|
||||
- Add inputs that generate larger error bounds
|
||||
- Reduce the statically linked startup code [BZ #23323]
|
||||
- posix: Falling back to non wide mode in case of encoding error [BZ #14185]
|
||||
- nptl: Move elision implementations into libc
|
||||
- NEWS: Add missing bug closures
|
||||
- added rt to malloc/Depend [BZ #27132]
|
||||
- x86: Use x86/nptl/pthreaddef.h
|
||||
- nptl: Move futex-internal into libc
|
||||
- nptl: Move lowlevellock into libc [BZ #15648]
|
||||
- nptl: Move futex-internal.c into main nptl directory
|
||||
- nptl: Reformat Versions
|
||||
- nptl: Split libpthread-routines into one routine per line
|
||||
- x86: Remove unused variables for raw cache sizes from cacheinfo.h
|
||||
- Use Linux 5.11 in build-many-glibcs.py.
|
||||
- <bits/platform/x86.h>: Correct x86_cpu_TBM
|
||||
- x86_64/clone.S: Upate comments
|
||||
- i386/clone.S: Remove redundant EBX load
|
||||
- aarch64: Remove the unused __read_tp symbol
|
||||
- build-many-glibcs.py: Use make -O for more consistent log output
|
||||
|
||||
* Sun Feb 21 2021 Carlos O'Donell <carlos@redhat.com> - 2.33.9000-2
|
||||
- Auto-sync with upstream branch master,
|
||||
commit e9e7f24543e6d1b0a31641f144697e261df6ccd7:
|
||||
|
4
sources
4
sources
@ -1,3 +1 @@
|
||||
SHA512 (glibc-2.32.9000-573-gdf359a25ba.tar.xz) = d5457c1756810308d4ec643c4f1a19a575656b9617db34909848c9ed877d09045bc1bd447189dccce59bcbe905bac56154e7a5896c9ebcb9b89f0a22643f816f
|
||||
SHA512 (glibc-2.33.9000-48-g228f30ab47.tar.xz) = f98f3c5770ad68282dd045ad2f8c5e747a5b8b8803340baf1967a6a39ccaaa14adcb0c959556056e6c49a1308d987d2b45133986ec9396249667f9a6a29e21be
|
||||
SHA512 (glibc-2.33.9000-73-ge9e7f24543.tar.xz) = 4cee5befd3652dd1a9ad3b1e0dfffef9dcd3dd7a353da775929d58cfb08d9bf3fa098741818572f3edcf62d11c79e91bc42482fd86f00c12bb25d30d452bd964
|
||||
SHA512 (glibc-2.33.9000-114-gf01a61e138.tar.xz) = e32129b3255cadfda5c6bca4bf1c6a5d0bfd8e717c476457e011e320afd373ffb96bfc874b4159f4a6954b331151ea8aa45efc4d977f1dff2040394bcc898185
|
||||
|
Loading…
Reference in New Issue
Block a user