aboutsummaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorkinichiro <kinichiro.inoguchi@gmail.com>2017-04-22 23:08:17 +0900
committerkinichiro <kinichiro.inoguchi@gmail.com>2017-04-22 23:37:20 +0900
commit048625cf2b36a91bcf04c5a1adc02fc5803491ca (patch)
tree5f328c5237ea412b17c7c7f3d5c8132115c7e790 /crypto
parent9d2418ae3a0b9577fdea0bac90802d8c0147f7f4 (diff)
downloadportable-048625cf2b36a91bcf04c5a1adc02fc5803491ca.tar.gz
portable-048625cf2b36a91bcf04c5a1adc02fc5803491ca.tar.bz2
portable-048625cf2b36a91bcf04c5a1adc02fc5803491ca.zip
Add freezero support
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}