https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=a13b0b7aea9d12c6cefe21082ef5c921ac071e3a
commit a13b0b7aea9d12c6cefe21082ef5c921ac071e3a Author: Corinna Vinschen <[email protected]> AuthorDate: Thu Jul 27 21:57:49 2023 +0200 Commit: Corinna Vinschen <[email protected]> CommitDate: Thu Jul 27 21:57:49 2023 +0200 Cygwin: fnmatch: fix range comparison in C locale Commit c36064bbd0c5 introduced operating on character pointers instead of operating on characters, to allow collating symbols. This patch neglected to change the expression for range comparison in case we're in the C locale. Thus it suddenly compared pointers instead of characters. Fix that. Fixes: c36064bbd0c5 ("Cygwin: fnmatch: support collating symbols in [. .] brackets") Signed-off-by: Corinna Vinschen <[email protected]> Diff: --- winsup/cygwin/libc/fnmatch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winsup/cygwin/libc/fnmatch.c b/winsup/cygwin/libc/fnmatch.c index 8a229a142032..a1cb5d1e4616 100644 --- a/winsup/cygwin/libc/fnmatch.c +++ b/winsup/cygwin/libc/fnmatch.c @@ -353,7 +353,7 @@ rangematch(const wint_t *pattern, wint_t *test, int flags, wint_t **newp, } if ((!__get_current_collate_locale ()->win_locale[0]) ? - c <= test && test <= c2 : + *c <= *test && *test <= *c2 : __wscollate_range_cmp(c, test, clen, tlen) <= 0 && __wscollate_range_cmp(test, c2, tlen, c2len) <= 0 )
