strings.h (be04fec42638f30f50b5b55fd8e3634c0fb89928) strings.h (5af6fbd72790173e128222943effc5aa95272ce9)
1/* $NetBSD: strings.h,v 1.3 2008/04/28 20:22:54 martin Exp $ */
2
3/*-
4 *
5 * SPDX-License-Identifier: BSD-2-Clause
6 *
7 * Copyright (c) 2007 The NetBSD Foundation, Inc.
8 * All rights reserved.

--- 25 unchanged lines hidden (view full) ---

34#ifndef _SSP_STRINGS_H_
35#define _SSP_STRINGS_H_
36
37#include <ssp/ssp.h>
38#include <string.h>
39
40#if __SSP_FORTIFY_LEVEL > 0
41
1/* $NetBSD: strings.h,v 1.3 2008/04/28 20:22:54 martin Exp $ */
2
3/*-
4 *
5 * SPDX-License-Identifier: BSD-2-Clause
6 *
7 * Copyright (c) 2007 The NetBSD Foundation, Inc.
8 * All rights reserved.

--- 25 unchanged lines hidden (view full) ---

34#ifndef _SSP_STRINGS_H_
35#define _SSP_STRINGS_H_
36
37#include <ssp/ssp.h>
38#include <string.h>
39
40#if __SSP_FORTIFY_LEVEL > 0
41
42#define _ssp_bcopy(srcvar, src, dstvar, dst, lenvar, len) ({ \
42#define _ssp_bcopy(srcvar, src, dstvar, dst, lenvar, len) __extension__ ({ \
43 const void *srcvar = (src); \
44 void *dstvar = (dst); \
45 size_t lenvar = (len); \
46 ((__ssp_bos0(dstvar) != (size_t)-1) ? \
47 __builtin___memmove_chk(dstvar, srcvar, lenvar, \
48 __ssp_bos0(dstvar)) : \
49 __memmove_ichk(dstvar, srcvar, lenvar)); \
50})
51
52#define bcopy(src, dst, len) \
53 _ssp_bcopy(__ssp_var(srcv), src, __ssp_var(dstv), dst, __ssp_var(lenv), len)
54
43 const void *srcvar = (src); \
44 void *dstvar = (dst); \
45 size_t lenvar = (len); \
46 ((__ssp_bos0(dstvar) != (size_t)-1) ? \
47 __builtin___memmove_chk(dstvar, srcvar, lenvar, \
48 __ssp_bos0(dstvar)) : \
49 __memmove_ichk(dstvar, srcvar, lenvar)); \
50})
51
52#define bcopy(src, dst, len) \
53 _ssp_bcopy(__ssp_var(srcv), src, __ssp_var(dstv), dst, __ssp_var(lenv), len)
54
55#define _ssp_bzero(dstvar, dst, lenvar, len) ({ \
55#define _ssp_bzero(dstvar, dst, lenvar, len) __extension__ ({ \
56 void *dstvar = (dst); \
57 size_t lenvar = (len); \
58 ((__ssp_bos0(dstvar) != (size_t)-1) ? \
59 __builtin___memset_chk(dstvar, 0, lenvar, \
60 __ssp_bos0(dstvar)) : \
61 __memset_ichk(dstvar, 0, lenvar)); \
62})
63
64#define bzero(dst, len) _ssp_bzero(__ssp_var(dstv), dst, __ssp_var(lenv), len)
65
66#endif /* __SSP_FORTIFY_LEVEL > 0 */
67#endif /* _SSP_STRINGS_H_ */
56 void *dstvar = (dst); \
57 size_t lenvar = (len); \
58 ((__ssp_bos0(dstvar) != (size_t)-1) ? \
59 __builtin___memset_chk(dstvar, 0, lenvar, \
60 __ssp_bos0(dstvar)) : \
61 __memset_ichk(dstvar, 0, lenvar)); \
62})
63
64#define bzero(dst, len) _ssp_bzero(__ssp_var(dstv), dst, __ssp_var(lenv), len)
65
66#endif /* __SSP_FORTIFY_LEVEL > 0 */
67#endif /* _SSP_STRINGS_H_ */