1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
// SPDX-License-Identifier: BSD-2-Clause
/*
* Copyright (C) 2019 Linaro Limited
*/
#include <string.h>
#include <string_ext.h>
/*
* This method prevents dead store elimination, which could happen in case
* link-time optimization (LTO) is used.
* See "Dead Store Elimination (Still) Considered Harmful" [1] section 3.3.3.
*
* [1]
* http://www.usenix.org/system/files/conference/usenixsecurity17/sec17-yang.pdf
*/
static volatile void * (*memset_func)(void *, int, size_t) =
(volatile void * (*)(void *, int, size_t))&memset;
void memzero_explicit(void *s, size_t count)
{
memset_func(s, 0, count);
}
|