Mercurial > gnulib
view m4/euidaccess.m4 @ 40212:8da9577294da
unistr/*, uniconv/*: Fix undefined behaviour.
Reported by Jeffrey Walton <noloader@gmail.com>.
* lib/unistr/u-cpy.h (FUNC): Don't invoke memcpy with a zero size.
* lib/unistr/u-cpy-alloc.h (FUNC): Likewise.
* lib/uniconv/u8-conv-from-enc.c (u8_conv_from_encoding): Likewise.
* lib/uniconv/u8-conv-to-enc.c (u8_conv_to_encoding): Likewise.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sat, 09 Mar 2019 00:01:47 +0100 |
parents | b06060465f09 |
children |
line wrap: on
line source
# euidaccess.m4 serial 15 dnl Copyright (C) 2002-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_NONREENTRANT_EUIDACCESS], [ AC_REQUIRE([gl_FUNC_EUIDACCESS]) AC_CHECK_DECLS([setregid]) AC_DEFINE([PREFER_NONREENTRANT_EUIDACCESS], [1], [Define this if you prefer euidaccess to return the correct result even if this would make it nonreentrant. Define this only if your entire application is safe even if the uid or gid might temporarily change. If your application uses signal handlers or threads it is probably not safe.]) ]) AC_DEFUN([gl_FUNC_EUIDACCESS], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl Persuade glibc <unistd.h> to declare euidaccess(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_FUNCS([euidaccess]) if test $ac_cv_func_euidaccess = no; then HAVE_EUIDACCESS=0 fi ]) # Prerequisites of lib/euidaccess.c. AC_DEFUN([gl_PREREQ_EUIDACCESS], [ dnl Prefer POSIX faccessat over non-standard euidaccess. AC_CHECK_FUNCS_ONCE([faccessat]) dnl Try various other non-standard fallbacks. AC_CHECK_HEADERS([libgen.h]) AC_FUNC_GETGROUPS # Solaris 9 and 10 need -lgen to get the eaccess function. # Save and restore LIBS so -lgen isn't added to it. Otherwise, *all* # programs in the package would end up linked with that potentially-shared # library, inducing unnecessary run-time overhead. LIB_EACCESS= AC_SUBST([LIB_EACCESS]) gl_saved_libs=$LIBS AC_SEARCH_LIBS([eaccess], [gen], [test "$ac_cv_search_eaccess" = "none required" || LIB_EACCESS=$ac_cv_search_eaccess]) AC_CHECK_FUNCS([eaccess]) LIBS=$gl_saved_libs ])