On Solaris 11.4/SPARC (cfarm106.cfarm.net): I see this in config.log: configure:52008: checking whether strncat works configure:52101: gcc -m64 -O2 -o conftest -g -O2 -I/export/home/haible/prefix-sparc64/include -Wall -D_REENTRANT -L/opt/csw/lib/64 -L/export/home/haible/prefix-sparc64/lib conftest.c >&5 configure:52101: $? = 0 configure:52101: ./conftest ../configure[6316]: eval: line 1: 5027: Memory fault(coredump) configure:52101: $? = 267 configure: program exited with status 267
This means, they still haven't fixed their strncat function, in umpteen years... 2023-06-25 Bruno Haible <br...@clisp.org> strncat: Update doc regarding Solaris 11.4. * doc/posix-functions/strncat.texi: Mention that the bug still exists on Solaris 11.4. * m4/strncat.m4 (gl_FUNC_STRNCAT): Update comments. diff --git a/doc/posix-functions/strncat.texi b/doc/posix-functions/strncat.texi index 365c37ee65..4926f28c9d 100644 --- a/doc/posix-functions/strncat.texi +++ b/doc/posix-functions/strncat.texi @@ -10,7 +10,7 @@ @itemize @item This function dereferences too much memory on some platforms: -Solaris 10 on SPARC, Solaris 11.0 on x86. +Solaris 11.4 on SPARC, Solaris 11.0 on x86. @item This function cannot be called from plain inline or extern inline functions on some platforms: diff --git a/m4/strncat.m4 b/m4/strncat.m4 index d8101457f8..1cef7aade0 100644 --- a/m4/strncat.m4 +++ b/m4/strncat.m4 @@ -1,4 +1,4 @@ -# strncat.m4 serial 6 +# strncat.m4 serial 7 dnl Copyright (C) 2002-2004, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -15,7 +15,7 @@ AC_DEFUN_ONCE([gl_FUNC_STRNCAT] AC_CHECK_HEADERS_ONCE([sys/mman.h]) AC_CHECK_FUNCS_ONCE([mprotect]) - dnl Detect bug in Solaris 8..10 on SPARC and Solaris 11.0 on x86: + dnl Detect bug in Solaris 8..11.4 on SPARC and Solaris 11.0 on x86: dnl strncat should not dereference more than n bytes, but always dereferences dnl n+1 bytes if the first n bytes don't contain a NUL byte. dnl Assume that strncat works on platforms that lack mprotect.