Re: Check for memset_explicit() and explicit_memset()

From: Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)com>
To: Peter Eisentraut <peter(at)eisentraut(dot)org>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Check for memset_explicit() and explicit_memset()
Date: 2026-02-23 15:22:22
Message-ID: aZxwro2YF7qHBOJH@ip-10-97-1-34.eu-west-3.compute.internal
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On Mon, Feb 23, 2026 at 08:12:41AM +0100, Peter Eisentraut wrote:
> We can use either of these to implement a missing explicit_bzero().
>
> explicit_memset() is supported on NetBSD. NetBSD hitherto didn't have a way
> to implement explicit_bzero() other than the fallback variant.
>
> memset_explicit() is the C23 standard, so we use it as first preference. It
> is currently supported on:
>
> - NetBSD 11
> - FreeBSD 15
> - glibc 2.43

@@ -1846,6 +1847,7 @@ AC_CHECK_FUNCS(m4_normalize([
kqueue
localeconv_l
mbstowcs_l
+ memset_explicit
posix_fallocate
ppoll

Could we hit the same kind of issue as in [1] (when using -std=c11)?

Asking because I can see (in [2]), that in glibc 2.43, memset_explicit is guarded
that way (string/string.h):

"
#if defined __USE_MISC || __GLIBC_USE (ISOC23)
/* Like memset, but the compiler will not delete a call to this
function, even if S is dead after the call. */
extern void *memset_explicit (void *__s, int __c, size_t __n)
__THROW __nonnull ((1)) __fortified_attr_access (__write_only__, 1, 3);
#endif
"

Should we move from AC_CHECK_FUNCS to AC_CHECK_DECLS? (same kind of idea as
12eee85e511f)?

[1]: https://postgr.es/m/CAA4pTnLcKGG78xeOjiBr5yS7ZeE-Rh%3DFaFQQGOO%3DnPzA1L8yEA%40mail.gmail.com
[2]: https://sourceware.org/git/?p=glibc.git;a=blob;f=string/string.h;hb=glibc-2.43

Regards,

--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Geier 2026-02-23 15:24:57 Re: Reduce timing overhead of EXPLAIN ANALYZE using rdtsc?
Previous Message Tom Lane 2026-02-23 14:48:27 Re: Wrong results with grouping sets