diff options
author | Theo Buehler <tb@openbsd.org> | 2023-12-12 08:19:39 +0100 |
---|---|---|
committer | Theo Buehler <tb@openbsd.org> | 2023-12-12 08:19:52 +0100 |
commit | f7bed14f22b70198b4ec56af6d489f69b3df805a (patch) | |
tree | 72c325e78e9636222920bf0a0259092d8a5861b7 | |
parent | 2e88c74329938b5af441736645e795289660aa38 (diff) | |
parent | c54bd8ba318dec4b4fbf4df1d92acbe2c032f3fd (diff) | |
download | portable-f7bed14f22b70198b4ec56af6d489f69b3df805a.tar.gz portable-f7bed14f22b70198b4ec56af6d489f69b3df805a.tar.bz2 portable-f7bed14f22b70198b4ec56af6d489f69b3df805a.zip |
Land #961
-rw-r--r-- | crypto/CMakeLists.txt | 37 | ||||
-rw-r--r-- | include/compat/stdio.h | 2 | ||||
-rw-r--r-- | include/compat/stdlib.h | 10 | ||||
-rw-r--r-- | include/compat/string.h | 11 | ||||
-rw-r--r-- | m4/check-libc.m4 | 3 |
5 files changed, 44 insertions, 19 deletions
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index 6056471..8046efe 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt | |||
@@ -767,13 +767,13 @@ endif() | |||
767 | 767 | ||
768 | if(NOT HAVE_ASPRINTF) | 768 | if(NOT HAVE_ASPRINTF) |
769 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/bsd-asprintf.c) | 769 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/bsd-asprintf.c) |
770 | set(EXTRA_EXPORT ${EXTRA_EXPORT} asprintf) | 770 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_asprintf) |
771 | set(EXTRA_EXPORT ${EXTRA_EXPORT} vasprintf) | 771 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_vasprintf) |
772 | endif() | 772 | endif() |
773 | 773 | ||
774 | if(NOT HAVE_FREEZERO) | 774 | if(NOT HAVE_FREEZERO) |
775 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/freezero.c) | 775 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/freezero.c) |
776 | set(EXTRA_EXPORT ${EXTRA_EXPORT} freezero) | 776 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_freezero) |
777 | endif() | 777 | endif() |
778 | 778 | ||
779 | if(NOT HAVE_GETOPT) | 779 | if(NOT HAVE_GETOPT) |
@@ -799,46 +799,46 @@ endif() | |||
799 | 799 | ||
800 | if(NOT HAVE_REALLOCARRAY) | 800 | if(NOT HAVE_REALLOCARRAY) |
801 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/reallocarray.c) | 801 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/reallocarray.c) |
802 | set(EXTRA_EXPORT ${EXTRA_EXPORT} reallocarray) | 802 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_reallocarray) |
803 | endif() | 803 | endif() |
804 | 804 | ||
805 | if(NOT HAVE_RECALLOCARRAY) | 805 | if(NOT HAVE_RECALLOCARRAY) |
806 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/recallocarray.c) | 806 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/recallocarray.c) |
807 | set(EXTRA_EXPORT ${EXTRA_EXPORT} recallocarray) | 807 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_recallocarray) |
808 | endif() | 808 | endif() |
809 | 809 | ||
810 | if(NOT HAVE_STRCASECMP) | 810 | if(NOT HAVE_STRCASECMP) |
811 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/strcasecmp.c) | 811 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/strcasecmp.c) |
812 | set(EXTRA_EXPORT ${EXTRA_EXPORT} strcasecmp) | 812 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strcasecmp) |
813 | endif() | 813 | endif() |
814 | 814 | ||
815 | if(NOT HAVE_STRLCAT) | 815 | if(NOT HAVE_STRLCAT) |
816 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/strlcat.c) | 816 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/strlcat.c) |
817 | set(EXTRA_EXPORT ${EXTRA_EXPORT} strlcat) | 817 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strlcat) |
818 | endif() | 818 | endif() |
819 | 819 | ||
820 | if(NOT HAVE_STRLCPY) | 820 | if(NOT HAVE_STRLCPY) |
821 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/strlcpy.c) | 821 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/strlcpy.c) |
822 | set(EXTRA_EXPORT ${EXTRA_EXPORT} strlcpy) | 822 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strlcpy) |
823 | endif() | 823 | endif() |
824 | 824 | ||
825 | if(NOT HAVE_STRNDUP) | 825 | if(NOT HAVE_STRNDUP) |
826 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/strndup.c) | 826 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/strndup.c) |
827 | set(EXTRA_EXPORT ${EXTRA_EXPORT} strndup) | 827 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strndup) |
828 | if(NOT HAVE_STRNLEN) | 828 | if(NOT HAVE_STRNLEN) |
829 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/strnlen.c) | 829 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/strnlen.c) |
830 | set(EXTRA_EXPORT ${EXTRA_EXPORT} strnlen) | 830 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strnlen) |
831 | endif() | 831 | endif() |
832 | endif() | 832 | endif() |
833 | 833 | ||
834 | if(NOT HAVE_STRSEP) | 834 | if(NOT HAVE_STRSEP) |
835 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/strsep.c) | 835 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/strsep.c) |
836 | set(EXTRA_EXPORT ${EXTRA_EXPORT} strsep) | 836 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strsep) |
837 | endif() | 837 | endif() |
838 | 838 | ||
839 | if(NOT HAVE_STRTONUM) | 839 | if(NOT HAVE_STRTONUM) |
840 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/strtonum.c) | 840 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/strtonum.c) |
841 | set(EXTRA_EXPORT ${EXTRA_EXPORT} strtonum) | 841 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strtonum) |
842 | endif() | 842 | endif() |
843 | 843 | ||
844 | if(NOT HAVE_SYSLOG_R) | 844 | if(NOT HAVE_SYSLOG_R) |
@@ -857,15 +857,15 @@ if(NOT HAVE_EXPLICIT_BZERO) | |||
857 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/explicit_bzero.c) | 857 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/explicit_bzero.c) |
858 | set_source_files_properties(compat/explicit_bzero.c PROPERTIES COMPILE_FLAGS -O0) | 858 | set_source_files_properties(compat/explicit_bzero.c PROPERTIES COMPILE_FLAGS -O0) |
859 | endif() | 859 | endif() |
860 | set(EXTRA_EXPORT ${EXTRA_EXPORT} explicit_bzero) | 860 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_explicit_bzero) |
861 | endif() | 861 | endif() |
862 | 862 | ||
863 | if(NOT HAVE_ARC4RANDOM_BUF) | 863 | if(NOT HAVE_ARC4RANDOM_BUF) |
864 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/arc4random.c) | 864 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/arc4random.c) |
865 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/arc4random_uniform.c) | 865 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/arc4random_uniform.c) |
866 | set(EXTRA_EXPORT ${EXTRA_EXPORT} arc4random) | 866 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_arc4random) |
867 | set(EXTRA_EXPORT ${EXTRA_EXPORT} arc4random_buf) | 867 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_arc4random_buf) |
868 | set(EXTRA_EXPORT ${EXTRA_EXPORT} arc4random_uniform) | 868 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_arc4random_uniform) |
869 | 869 | ||
870 | if(NOT HAVE_GETENTROPY) | 870 | if(NOT HAVE_GETENTROPY) |
871 | if(WIN32) | 871 | if(WIN32) |
@@ -891,12 +891,12 @@ endif() | |||
891 | 891 | ||
892 | if(NOT HAVE_TIMINGSAFE_BCMP) | 892 | if(NOT HAVE_TIMINGSAFE_BCMP) |
893 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_bcmp.c) | 893 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_bcmp.c) |
894 | set(EXTRA_EXPORT ${EXTRA_EXPORT} timingsafe_bcmp) | 894 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_timingsafe_bcmp) |
895 | endif() | 895 | endif() |
896 | 896 | ||
897 | if(NOT HAVE_TIMINGSAFE_MEMCMP) | 897 | if(NOT HAVE_TIMINGSAFE_MEMCMP) |
898 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_memcmp.c) | 898 | set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_memcmp.c) |
899 | set(EXTRA_EXPORT ${EXTRA_EXPORT} timingsafe_memcmp) | 899 | set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_timingsafe_memcmp) |
900 | endif() | 900 | endif() |
901 | 901 | ||
902 | if(NOT ENABLE_ASM) | 902 | if(NOT ENABLE_ASM) |
@@ -919,6 +919,7 @@ foreach(SYM IN LISTS CRYPTO_UNEXPORT) | |||
919 | string(REPLACE "${SYM}\n" "" SYMS ${SYMS}) | 919 | string(REPLACE "${SYM}\n" "" SYMS ${SYMS}) |
920 | endforeach() | 920 | endforeach() |
921 | file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym ${SYMS}) | 921 | file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym ${SYMS}) |
922 | # XXX should we still be doing this? | ||
922 | if(EXTRA_EXPORT) | 923 | if(EXTRA_EXPORT) |
923 | list(SORT EXTRA_EXPORT) | 924 | list(SORT EXTRA_EXPORT) |
924 | foreach(SYM IN LISTS EXTRA_EXPORT) | 925 | foreach(SYM IN LISTS EXTRA_EXPORT) |
diff --git a/include/compat/stdio.h b/include/compat/stdio.h index d5725c9..4ddd63a 100644 --- a/include/compat/stdio.h +++ b/include/compat/stdio.h | |||
@@ -20,7 +20,9 @@ | |||
20 | 20 | ||
21 | #ifndef HAVE_ASPRINTF | 21 | #ifndef HAVE_ASPRINTF |
22 | #include <stdarg.h> | 22 | #include <stdarg.h> |
23 | #define vasprintf libressl_vasprintf | ||
23 | int vasprintf(char **str, const char *fmt, va_list ap); | 24 | int vasprintf(char **str, const char *fmt, va_list ap); |
25 | #define asprintf libressl_asprintf | ||
24 | int asprintf(char **str, const char *fmt, ...); | 26 | int asprintf(char **str, const char *fmt, ...); |
25 | #endif | 27 | #endif |
26 | 28 | ||
diff --git a/include/compat/stdlib.h b/include/compat/stdlib.h index 2eaea24..76dc07c 100644 --- a/include/compat/stdlib.h +++ b/include/compat/stdlib.h | |||
@@ -20,26 +20,36 @@ | |||
20 | #include <stdint.h> | 20 | #include <stdint.h> |
21 | 21 | ||
22 | #ifndef HAVE_ARC4RANDOM_BUF | 22 | #ifndef HAVE_ARC4RANDOM_BUF |
23 | #define arc4random libressl_arc4random | ||
23 | uint32_t arc4random(void); | 24 | uint32_t arc4random(void); |
25 | #define arc4random_buf libressl_arc4random_buf | ||
24 | void arc4random_buf(void *_buf, size_t n); | 26 | void arc4random_buf(void *_buf, size_t n); |
27 | #define arc4random_uniform libressl_arc4random_uniform | ||
25 | uint32_t arc4random_uniform(uint32_t upper_bound); | 28 | uint32_t arc4random_uniform(uint32_t upper_bound); |
26 | #endif | 29 | #endif |
27 | 30 | ||
28 | #ifndef HAVE_FREEZERO | 31 | #ifndef HAVE_FREEZERO |
32 | #define freezero libressl_freezero | ||
29 | void freezero(void *ptr, size_t sz); | 33 | void freezero(void *ptr, size_t sz); |
30 | #endif | 34 | #endif |
31 | 35 | ||
32 | #ifndef HAVE_GETPROGNAME | 36 | #ifndef HAVE_GETPROGNAME |
37 | #define getprogname libressl_getprogname | ||
33 | const char * getprogname(void); | 38 | const char * getprogname(void); |
34 | #endif | 39 | #endif |
35 | 40 | ||
41 | #ifndef HAVE_REALLOCARRAY | ||
42 | #define reallocarray libressl_reallocarray | ||
36 | void *reallocarray(void *, size_t, size_t); | 43 | void *reallocarray(void *, size_t, size_t); |
44 | #endif | ||
37 | 45 | ||
38 | #ifndef HAVE_RECALLOCARRAY | 46 | #ifndef HAVE_RECALLOCARRAY |
47 | #define recallocarray libressl_recallocarray | ||
39 | void *recallocarray(void *, size_t, size_t, size_t); | 48 | void *recallocarray(void *, size_t, size_t, size_t); |
40 | #endif | 49 | #endif |
41 | 50 | ||
42 | #ifndef HAVE_STRTONUM | 51 | #ifndef HAVE_STRTONUM |
52 | #define strtonum libressl_strtonum | ||
43 | long long strtonum(const char *nptr, long long minval, | 53 | long long strtonum(const char *nptr, long long minval, |
44 | long long maxval, const char **errstr); | 54 | long long maxval, const char **errstr); |
45 | #endif | 55 | #endif |
diff --git a/include/compat/string.h b/include/compat/string.h index 4bf7519..6a82793 100644 --- a/include/compat/string.h +++ b/include/compat/string.h | |||
@@ -27,43 +27,54 @@ | |||
27 | #endif | 27 | #endif |
28 | 28 | ||
29 | #ifndef HAVE_STRCASECMP | 29 | #ifndef HAVE_STRCASECMP |
30 | #define strcasecmp libressl_strcasecmp | ||
30 | int strcasecmp(const char *s1, const char *s2); | 31 | int strcasecmp(const char *s1, const char *s2); |
32 | #define strncasecmp libressl_strncasecmp | ||
31 | int strncasecmp(const char *s1, const char *s2, size_t len); | 33 | int strncasecmp(const char *s1, const char *s2, size_t len); |
32 | #endif | 34 | #endif |
33 | 35 | ||
34 | #ifndef HAVE_STRLCPY | 36 | #ifndef HAVE_STRLCPY |
37 | #define strlcpy libressl_strlcpy | ||
35 | size_t strlcpy(char *dst, const char *src, size_t siz); | 38 | size_t strlcpy(char *dst, const char *src, size_t siz); |
36 | #endif | 39 | #endif |
37 | 40 | ||
38 | #ifndef HAVE_STRLCAT | 41 | #ifndef HAVE_STRLCAT |
42 | #define strlcat libressl_strlcat | ||
39 | size_t strlcat(char *dst, const char *src, size_t siz); | 43 | size_t strlcat(char *dst, const char *src, size_t siz); |
40 | #endif | 44 | #endif |
41 | 45 | ||
42 | #ifndef HAVE_STRNDUP | 46 | #ifndef HAVE_STRNDUP |
47 | #define strndup libressl_strndup | ||
43 | char * strndup(const char *str, size_t maxlen); | 48 | char * strndup(const char *str, size_t maxlen); |
44 | /* the only user of strnlen is strndup, so only build it if needed */ | 49 | /* the only user of strnlen is strndup, so only build it if needed */ |
45 | #ifndef HAVE_STRNLEN | 50 | #ifndef HAVE_STRNLEN |
51 | #define strnlen libressl_strnlen | ||
46 | size_t strnlen(const char *str, size_t maxlen); | 52 | size_t strnlen(const char *str, size_t maxlen); |
47 | #endif | 53 | #endif |
48 | #endif | 54 | #endif |
49 | 55 | ||
50 | #ifndef HAVE_STRSEP | 56 | #ifndef HAVE_STRSEP |
57 | #define strsep libressl_strsep | ||
51 | char *strsep(char **stringp, const char *delim); | 58 | char *strsep(char **stringp, const char *delim); |
52 | #endif | 59 | #endif |
53 | 60 | ||
54 | #ifndef HAVE_EXPLICIT_BZERO | 61 | #ifndef HAVE_EXPLICIT_BZERO |
62 | #define explicit_bzero libressl_explicit_bzero | ||
55 | void explicit_bzero(void *, size_t); | 63 | void explicit_bzero(void *, size_t); |
56 | #endif | 64 | #endif |
57 | 65 | ||
58 | #ifndef HAVE_TIMINGSAFE_BCMP | 66 | #ifndef HAVE_TIMINGSAFE_BCMP |
67 | #define timingsafe_bcmp libressl_timingsafe_bcmp | ||
59 | int timingsafe_bcmp(const void *b1, const void *b2, size_t n); | 68 | int timingsafe_bcmp(const void *b1, const void *b2, size_t n); |
60 | #endif | 69 | #endif |
61 | 70 | ||
62 | #ifndef HAVE_TIMINGSAFE_MEMCMP | 71 | #ifndef HAVE_TIMINGSAFE_MEMCMP |
72 | #define timingsafe_memcmp libressl_timingsafe_memcmp | ||
63 | int timingsafe_memcmp(const void *b1, const void *b2, size_t len); | 73 | int timingsafe_memcmp(const void *b1, const void *b2, size_t len); |
64 | #endif | 74 | #endif |
65 | 75 | ||
66 | #ifndef HAVE_MEMMEM | 76 | #ifndef HAVE_MEMMEM |
77 | #define memmem libressl_memmem | ||
67 | void * memmem(const void *big, size_t big_len, const void *little, | 78 | void * memmem(const void *big, size_t big_len, const void *little, |
68 | size_t little_len); | 79 | size_t little_len); |
69 | #endif | 80 | #endif |
diff --git a/m4/check-libc.m4 b/m4/check-libc.m4 index dc8d6bd..50fb8e1 100644 --- a/m4/check-libc.m4 +++ b/m4/check-libc.m4 | |||
@@ -9,7 +9,7 @@ AC_HEADER_RESOLV | |||
9 | # Check for general libc functions | 9 | # Check for general libc functions |
10 | AC_CHECK_FUNCS([asprintf freezero memmem]) | 10 | AC_CHECK_FUNCS([asprintf freezero memmem]) |
11 | AC_CHECK_FUNCS([readpassphrase reallocarray recallocarray]) | 11 | AC_CHECK_FUNCS([readpassphrase reallocarray recallocarray]) |
12 | AC_CHECK_FUNCS([strlcat strlcpy strndup strnlen strsep strtonum]) | 12 | AC_CHECK_FUNCS([strcasecmp strlcat strlcpy strndup strnlen strsep strtonum]) |
13 | AC_CHECK_FUNCS([timegm _mkgmtime timespecsub]) | 13 | AC_CHECK_FUNCS([timegm _mkgmtime timespecsub]) |
14 | AC_CHECK_FUNCS([getopt getprogname syslog syslog_r]) | 14 | AC_CHECK_FUNCS([getopt getprogname syslog syslog_r]) |
15 | AC_CACHE_CHECK([for getpagesize], ac_cv_func_getpagesize, [ | 15 | AC_CACHE_CHECK([for getpagesize], ac_cv_func_getpagesize, [ |
@@ -30,6 +30,7 @@ AM_CONDITIONAL([HAVE_MEMMEM], [test "x$ac_cv_func_memmem" = xyes]) | |||
30 | AM_CONDITIONAL([HAVE_READPASSPHRASE], [test "x$ac_cv_func_readpassphrase" = xyes]) | 30 | AM_CONDITIONAL([HAVE_READPASSPHRASE], [test "x$ac_cv_func_readpassphrase" = xyes]) |
31 | AM_CONDITIONAL([HAVE_REALLOCARRAY], [test "x$ac_cv_func_reallocarray" = xyes]) | 31 | AM_CONDITIONAL([HAVE_REALLOCARRAY], [test "x$ac_cv_func_reallocarray" = xyes]) |
32 | AM_CONDITIONAL([HAVE_RECALLOCARRAY], [test "x$ac_cv_func_recallocarray" = xyes]) | 32 | AM_CONDITIONAL([HAVE_RECALLOCARRAY], [test "x$ac_cv_func_recallocarray" = xyes]) |
33 | AM_CONDITIONAL([HAVE_STRCASECMP], [test "x$ac_cv_func_strcasecmp" = xyes]) | ||
33 | AM_CONDITIONAL([HAVE_STRLCAT], [test "x$ac_cv_func_strlcat" = xyes]) | 34 | AM_CONDITIONAL([HAVE_STRLCAT], [test "x$ac_cv_func_strlcat" = xyes]) |
34 | AM_CONDITIONAL([HAVE_STRLCPY], [test "x$ac_cv_func_strlcpy" = xyes]) | 35 | AM_CONDITIONAL([HAVE_STRLCPY], [test "x$ac_cv_func_strlcpy" = xyes]) |
35 | AM_CONDITIONAL([HAVE_STRNDUP], [test "x$ac_cv_func_strndup" = xyes]) | 36 | AM_CONDITIONAL([HAVE_STRNDUP], [test "x$ac_cv_func_strndup" = xyes]) |