summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@dtucker.net>2018-02-24 20:25:22 +1100
committerDarren Tucker <dtucker@dtucker.net>2018-02-26 00:09:04 +1100
commita9004425a032d7a7141a5437cfabfd02431e2a74 (patch)
treeb1f1f7914c2d65457ff313427049343153db6ef4
parent1a348359e4d2876203b5255941bae348557f4f54 (diff)
Check for bzero and supply if needed.
Since explicit_bzero uses it via an indirect it needs to be a function not just a macro.
-rw-r--r--configure.ac3
-rw-r--r--openbsd-compat/bsd-misc.c8
-rw-r--r--openbsd-compat/bsd-misc.h4
3 files changed, 15 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index e81e3ecc..e23540e6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1695,6 +1695,7 @@ AC_CHECK_FUNCS([ \
bcrypt_pbkdf \
bindresvport_sa \
blf_enc \
+ bzero \
cap_rights_limit \
clock \
closefrom \
@@ -1800,6 +1801,8 @@ AC_CHECK_FUNCS([ \
warn \
])
+AC_CHECK_DECLS([bzero])
+
dnl Wide character support.
AC_CHECK_FUNCS([mblen mbtowc nl_langinfo wcwidth])
diff --git a/openbsd-compat/bsd-misc.c b/openbsd-compat/bsd-misc.c
index 9f6dc8af..3e8f74b7 100644
--- a/openbsd-compat/bsd-misc.c
+++ b/openbsd-compat/bsd-misc.c
@@ -282,3 +282,11 @@ llabs(long long j)
return (j < 0 ? -j : j);
}
#endif
+
+#ifndef HAVE_BZERO
+void
+bzero(void *b, size_t n)
+{
+ (void)memset(b, 0, n);
+}
+#endif
diff --git a/openbsd-compat/bsd-misc.h b/openbsd-compat/bsd-misc.h
index 2cfd5dae..bf5fad18 100644
--- a/openbsd-compat/bsd-misc.h
+++ b/openbsd-compat/bsd-misc.h
@@ -133,4 +133,8 @@ void warn(const char *, ...) __attribute__((format(printf, 1, 2)));
long long llabs(long long);
#endif
+#ifndef HAVE_DECL_BZERO
+void bzero(void *, size_t);
+#endif
+
#endif /* _BSD_MISC_H */