strverscmp is buggy in newlib 4.4.0 (was: Cygwin 3.4.6)

Brian Inglis Brian.Inglis@SystematicSW.ab.ca
Tue Jan 2 17:36:56 GMT 2024


On 2024-01-02 03:23, Bruno Haible via Cygwin wrote:
> Here's a test case of strverscmp, from Dmitry Bogatov [1]
> #include <string.h>
> int main ()
> {
>    return strverscmp ("UNKNOWN", "2.2.0") <= 0;
> }
> It succeeds on glibc and musl libc 1.2.4, but fails on musl libc 1.2.3
> and Cygwin 2.9.0 and 3.4.6.
> The cause is apparently that Cygwin's strverscmp implementation was
> borrowed from musl libc (Cygwin commit 59e09b6419cdf400be3c73b61ac9c22560dc397e)
> at a time when musl libc's implementation was buggy. In musl libc, it is
> meanwhile fixed, through
> https://git.musl-libc.org/cgit/musl/commit/src/string/strverscmp.c?id=b50eb8c36c20f967bd0ed70c0b0db38a450886ba
> [1] https://lists.gnu.org/archive/html/bug-gnulib/2024-01/msg00002.html

Issue is in newlib (x-post and followups set):
https://sourceware.org/cgit/newlib-cygwin/tree/newlib/libc/string/strverscmp.c

patch with git log msg:
https://git.musl-libc.org/cgit/musl/patch/src/string/strverscmp.c?id=b50eb8c36c20f967bd0ed70c0b0db38a450886ba

Gnulib discussion:
https://lists.gnu.org/archive/html/bug-gnulib/2024-01/msg00002.html

Musl thread starts:
https://www.openwall.com/lists/musl/2022/11/06/1

bare patch without git log msg attached to:
https://www.openwall.com/lists/musl/2022/11/08/1

-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer     but when there is no more to cut
                                 -- Antoine de Saint-Exupéry



More information about the Cygwin mailing list