From: Bastien Roucariès Date: Sun, 12 Apr 2020 23:09:14 +0000 (+0200) Subject: explicit_bzero: Use memset_s() when available. X-Git-Tag: v1.0~4167 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=818572b398a9454e0edc1bb7f7135fc6af244694;p=gnulib.git explicit_bzero: Use memset_s() when available. Some OS define memset_s instead of explicit_bzero. Use it. * lib/explicit_bzero.c (__STDC_WANT_LIB_EXT1__): Define. (explicit_bzero): Use memset_s when available. * m4/explicit_bzero.m4 (gl_PREREQ_EXPLICIT_BZERO): Test for memset_s. Signed-off-by: Bastien Roucariès --- diff --git a/ChangeLog b/ChangeLog index 90fb563123..8bb1465d82 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2020-04-13 Bastien Roucariès + + explicit_bzero: Use memset_s() when available. + * lib/explicit_bzero.c (__STDC_WANT_LIB_EXT1__): Define. + (explicit_bzero): Use memset_s when available. + * m4/explicit_bzero.m4 (gl_PREREQ_EXPLICIT_BZERO): Test for memset_s. + 2020-04-13 Bastien Roucariès explicit_bzero tests: Fix test failure on OpenBSD 6.5. diff --git a/lib/explicit_bzero.c b/lib/explicit_bzero.c index 51b79a8918..2168a52854 100644 --- a/lib/explicit_bzero.c +++ b/lib/explicit_bzero.c @@ -25,6 +25,11 @@ # include #endif +/* memset_s need this define */ +#if HAVE_MEMSET_S +# define __STDC_WANT_LIB_EXT1__ 1 +#endif + #include #if _LIBC @@ -40,6 +45,8 @@ explicit_bzero (void *s, size_t len) { #ifdef HAVE_EXPLICIT_MEMSET explicit_memset (s, 0, len); +#elif HAVE_MEMSET_S + (void) memset_s (s, len, '\0', len); #else memset (s, '\0', len); # if defined __GNUC__ && !defined __clang__ diff --git a/m4/explicit_bzero.m4 b/m4/explicit_bzero.m4 index 507816affd..a415e7b4f5 100644 --- a/m4/explicit_bzero.m4 +++ b/m4/explicit_bzero.m4 @@ -19,4 +19,5 @@ AC_DEFUN([gl_FUNC_EXPLICIT_BZERO], AC_DEFUN([gl_PREREQ_EXPLICIT_BZERO], [ AC_CHECK_FUNCS([explicit_memset]) + AC_CHECK_FUNCS_ONCE([memset_s]) ])