Theo Buehler 0a446e81ed Prefix some compat symbols with libressl_
See #928. This isn't a full fix, but should remove much of the friction
already.
2023-12-11 17:14:07 +01:00

58 lines
1.2 KiB
C

/*
* stdlib.h compatibility shim
* Public domain
*/
#ifdef _MSC_VER
#if _MSC_VER >= 1900
#include <../ucrt/stdlib.h>
#else
#include <../include/stdlib.h>
#endif
#else
#include_next <stdlib.h>
#endif
#ifndef LIBCRYPTOCOMPAT_STDLIB_H
#define LIBCRYPTOCOMPAT_STDLIB_H
#include <sys/types.h>
#include <stdint.h>
#ifndef HAVE_ARC4RANDOM_BUF
#define arc4random libressl_arc4random
uint32_t arc4random(void);
#define arc4random_buf libressl_arc4random_buf
void arc4random_buf(void *_buf, size_t n);
#define arc4random_uniform libressl_arc4random_uniform
uint32_t arc4random_uniform(uint32_t upper_bound);
#endif
#ifndef HAVE_FREEZERO
#define freezero libressl_freezero
void freezero(void *ptr, size_t sz);
#endif
#ifndef HAVE_GETPROGNAME
#define getprogname libressl_getprogname
const char * getprogname(void);
#endif
#ifndef HAVE_REALLOCARRAY
#define reallocarray libressl_reallocarray
void *reallocarray(void *, size_t, size_t);
#endif
#ifndef HAVE_RECALLOCARRAY
#define recallocarray libressl_recallocarray
void *recallocarray(void *, size_t, size_t, size_t);
#endif
#ifndef HAVE_STRTONUM
#define strtonum libressl_strtonum
long long strtonum(const char *nptr, long long minval,
long long maxval, const char **errstr);
#endif
#endif