mirror of
https://git.freebsd.org/src.git
synced 2026-01-16 23:02:24 +00:00
ssp/ssp.h needed some improvements:
- `len` isn't always a size_t, it may need casted
- In some cases we may want to use a len that isn't specified as a
parameter (e.g., L_ctermid), so __ssp_redirect() should be more
flexible.
- In other cases we may want additional checking, so pull all of the
declaration bits out of __ssp_redirect_raw() so that some functions
can implement the body themselves.
strlcat/strlcpy should be the last of the fortified functions that get
their own __*_chk symbols, and these cases are only done to be
consistent with the rest of the str*() set.
Reviewed by: markj
Sponsored by: Klara, Inc.
Sponsored by: Stormshield
Differential Revision: https://reviews.freebsd.org/D45679
27 lines
521 B
C
27 lines
521 B
C
/* $OpenBSD: explicit_bzero.c,v 1.3 2014/06/21 02:34:26 matthew Exp $ */
|
|
/*
|
|
* Public domain.
|
|
* Written by Matthew Dempsky.
|
|
*/
|
|
|
|
#include <sys/cdefs.h>
|
|
#ifdef _KERNEL
|
|
#include <sys/libkern.h>
|
|
#else
|
|
#include <string.h>
|
|
#include <ssp/ssp.h>
|
|
#endif /* _KERNEL */
|
|
|
|
__attribute__((weak)) void __explicit_bzero_hook(void *, size_t);
|
|
|
|
__attribute__((weak)) void
|
|
__explicit_bzero_hook(void *buf, size_t len)
|
|
{
|
|
}
|
|
|
|
void
|
|
__ssp_real(explicit_bzero)(void *buf, size_t len)
|
|
{
|
|
memset(buf, 0, len);
|
|
__explicit_bzero_hook(buf, len);
|
|
}
|