aboutsummaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorBrent Cook <bcook@openbsd.org>2017-04-28 00:22:43 -0500
committerBrent Cook <bcook@openbsd.org>2017-04-28 00:22:43 -0500
commit53fb56ea87be14453c366fa63fc3296ef0a3ebac (patch)
tree6b212cf96147af5f9e3724cfdefb33e2fa14cdd8 /crypto
parent7ec0510e33ed897b2d6421a6235c563f1953e210 (diff)
parent048625cf2b36a91bcf04c5a1adc02fc5803491ca (diff)
downloadportable-53fb56ea87be14453c366fa63fc3296ef0a3ebac.tar.gz
portable-53fb56ea87be14453c366fa63fc3296ef0a3ebac.tar.bz2
portable-53fb56ea87be14453c366fa63fc3296ef0a3ebac.zip
Land #306, add freezero
Diffstat (limited to 'crypto')
-rw-r--r--crypto/CMakeLists.txt5
-rw-r--r--crypto/Makefile.am4
-rw-r--r--crypto/compat/freezero.c13
3 files changed, 22 insertions, 0 deletions
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index d7b65e2..028d840 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -681,6 +681,11 @@ if(NOT HAVE_ASPRINTF)
681 set(EXTRA_EXPORT ${EXTRA_EXPORT} vasprintf) 681 set(EXTRA_EXPORT ${EXTRA_EXPORT} vasprintf)
682endif() 682endif()
683 683
684if(NOT HAVE_FREEZERO)
685 set(CRYPTO_SRC ${CRYPTO_SRC} compat/freezero.c)
686 set(EXTRA_EXPORT ${EXTRA_EXPORT} freezero)
687endif()
688
684if(NOT HAVE_GETPAGESIZE) 689if(NOT HAVE_GETPAGESIZE)
685 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getpagesize.c) 690 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getpagesize.c)
686endif() 691endif()
diff --git a/crypto/Makefile.am b/crypto/Makefile.am
index 04b67aa..0e7f9c8 100644
--- a/crypto/Makefile.am
+++ b/crypto/Makefile.am
@@ -84,6 +84,10 @@ if !HAVE_ASPRINTF
84libcompat_la_SOURCES += compat/bsd-asprintf.c 84libcompat_la_SOURCES += compat/bsd-asprintf.c
85endif 85endif
86 86
87if !HAVE_FREEZERO
88libcompat_la_SOURCES += compat/freezero.c
89endif
90
87if !HAVE_GETPAGESIZE 91if !HAVE_GETPAGESIZE
88libcompat_la_SOURCES += compat/getpagesize.c 92libcompat_la_SOURCES += compat/getpagesize.c
89endif 93endif
diff --git a/crypto/compat/freezero.c b/crypto/compat/freezero.c
new file mode 100644
index 0000000..8becc00
--- /dev/null
+++ b/crypto/compat/freezero.c
@@ -0,0 +1,13 @@
1#include <string.h>
2#include <stdlib.h>
3
4void
5freezero(void *ptr, size_t sz)
6{
7 /* This is legal. */
8 if (ptr == NULL)
9 return;
10
11 explicit_bzero(ptr, sz);
12 free(ptr);
13}