]>
Commit | Line | Data |
---|---|---|
0f113f3e | 1 | /* |
4f22f405 | 2 | * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. |
df29cc8f | 3 | * |
0e9725bc | 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use |
4f22f405 RS |
5 | * this file except in compliance with the License. You can obtain a copy |
6 | * in the file LICENSE in the source distribution or at | |
7 | * https://www.openssl.org/source/license.html | |
df29cc8f RL |
8 | */ |
9 | ||
10 | #include <string.h> | |
11 | #include <openssl/crypto.h> | |
12 | ||
104ce8a9 RS |
13 | /* |
14 | * Pointer to memset is volatile so that compiler must de-reference | |
15 | * the pointer and can't assume that it points to any function in | |
16 | * particular (such as memset, which it then might further "optimize") | |
17 | */ | |
700b8145 | 18 | typedef void *(*memset_t)(void *, int, size_t); |
104ce8a9 RS |
19 | |
20 | static volatile memset_t memset_func = memset; | |
df29cc8f RL |
21 | |
22 | void OPENSSL_cleanse(void *ptr, size_t len) | |
0f113f3e | 23 | { |
104ce8a9 | 24 | memset_func(ptr, 0, len); |
0f113f3e | 25 | } |