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


--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to