Improve and simplify function and header detection logic.

Simplify autoconf checks by using AC_CHECK_FUNCS/HEADERS.
Clarify some ambiguous dependencies around strnlen/strndup.
Unconditionally enable pidwraptest for all arc4random implementations.
Remove HAVE_VASPRINTF conditional, since asprintf requires vasprintf.

ok @doug
This commit is contained in:
Brent Cook
2014-10-29 15:44:36 -05:00
parent 727bccd093
commit a4cc953911
10 changed files with 51 additions and 111 deletions

View File

@@ -3,7 +3,7 @@
#ifndef LIBCRYPTOCOMPAT_STDIO_H
#define LIBCRYPTOCOMPAT_STDIO_H
#ifdef NO_ASPRINTF
#ifndef HAVE_ASPRINTF
#include <stdarg.h>
int vasprintf(char **str, const char *fmt, va_list ap);
int asprintf(char **str, const char *fmt, ...);

View File

@@ -7,16 +7,16 @@
#include <sys/time.h>
#include <stdint.h>
#ifdef NO_ARC4RANDOM_BUF
#ifndef HAVE_ARC4RANDOM_BUF
uint32_t arc4random(void);
void arc4random_buf(void *_buf, size_t n);
#endif
#ifdef NO_REALLOCARRAY
#ifndef HAVE_REALLOCARRAY
void *reallocarray(void *, size_t, size_t);
#endif
#ifdef NO_STRTONUM
#ifndef HAVE_STRTONUM
long long strtonum(const char *nptr, long long minval,
long long maxval, const char **errstr);
#endif

View File

@@ -12,34 +12,35 @@
#include <strings.h>
#endif
#ifdef NO_STRLCPY
#ifndef HAVE_STRLCPY
size_t strlcpy(char *dst, const char *src, size_t siz);
#endif
#ifdef NO_STRLCAT
#ifndef HAVE_STRLCAT
size_t strlcat(char *dst, const char *src, size_t siz);
#endif
#ifdef NO_STRNDUP
#ifndef HAVE_STRNDUP
char * strndup(const char *str, size_t maxlen);
#ifdef NO_STRNLEN
/* the only user of strnlen is strndup, so only build it if needed */
#ifndef HAVE_STRNLEN
size_t strnlen(const char *str, size_t maxlen);
#endif
#endif
#ifdef NO_EXPLICIT_BZERO
#ifndef HAVE_EXPLICIT_BZERO
void explicit_bzero(void *, size_t);
#endif
#ifdef NO_TIMINGSAFE_BCMP
#ifndef HAVE_TIMINGSAFE_BCMP
int timingsafe_bcmp(const void *b1, const void *b2, size_t n);
#endif
#ifdef NO_TIMINGSAFE_MEMCMP
#ifndef HAVE_TIMINGSAFE_MEMCMP
int timingsafe_memcmp(const void *b1, const void *b2, size_t len);
#endif
#ifdef NO_MEMMEM
#ifndef HAVE_MEMMEM
void * memmem(const void *big, size_t big_len, const void *little,
size_t little_len);
#endif

View File

@@ -3,11 +3,11 @@
#ifndef LIBCRYPTOCOMPAT_UNISTD_H
#define LIBCRYPTOCOMPAT_UNISTD_H
#ifdef NO_GETENTROPY
#ifndef HAVE_GETENTROPY
int getentropy(void *buf, size_t buflen);
#endif
#ifdef NO_ISSETUGID
#ifndef HAVE_ISSETUGID
int issetugid(void);
#endif