logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git

0002-Use-timingsafe_memcmp-if-available.patch (2032B)


  1. From 3d154a079c8417779c0c83d4ce73678613ba6026 Mon Sep 17 00:00:00 2001
  2. From: Michael Forney <mforney@mforney.org>
  3. Date: Tue, 21 Aug 2018 15:52:34 -0700
  4. Subject: [PATCH] Use timingsafe_memcmp if available
  5. ---
  6. configure.ac | 2 +-
  7. tsig.c | 4 +++-
  8. 2 files changed, 4 insertions(+), 2 deletions(-)
  9. diff --git a/configure.ac b/configure.ac
  10. index bd64fdb2..0ce02518 100644
  11. --- a/configure.ac
  12. +++ b/configure.ac
  13. @@ -635,7 +635,7 @@ AC_CHECK_SIZEOF(void*)
  14. AC_CHECK_SIZEOF(off_t)
  15. AC_CHECK_FUNCS([getrandom arc4random arc4random_uniform])
  16. AC_SEARCH_LIBS([setusercontext],[util],[AC_CHECK_HEADERS([login_cap.h],,, [AC_INCLUDES_DEFAULT])])
  17. -AC_CHECK_FUNCS([tzset alarm chroot dup2 endpwent gethostname memset memcpy pwrite socket strcasecmp strchr strdup strerror strncasecmp strtol writev getaddrinfo getnameinfo freeaddrinfo gai_strerror sigaction sigprocmask strptime strftime localtime_r setusercontext glob initgroups setresuid setreuid setresgid setregid getpwnam mmap ppoll clock_gettime accept4 getifaddrs])
  18. +AC_CHECK_FUNCS([tzset alarm chroot dup2 endpwent gethostname memset memcpy pwrite socket strcasecmp strchr strdup strerror strncasecmp strtol writev getaddrinfo getnameinfo freeaddrinfo gai_strerror sigaction sigprocmask strptime strftime localtime_r setusercontext glob initgroups setresuid setreuid setresgid setregid getpwnam mmap ppoll clock_gettime accept4 getifaddrs timingsafe_memcmp])
  19. AC_CHECK_TYPE([struct mmsghdr], AC_DEFINE(HAVE_MMSGHDR, 1, [If sys/socket.h has a struct mmsghdr.]), [], [
  20. AC_INCLUDES_DEFAULT
  21. diff --git a/tsig.c b/tsig.c
  22. index 8b24fd1b..e75aa231 100644
  23. --- a/tsig.c
  24. +++ b/tsig.c
  25. @@ -19,7 +19,9 @@
  26. #include "query.h"
  27. #include "rbtree.h"
  28. -#if !defined(HAVE_SSL) || !defined(HAVE_CRYPTO_MEMCMP)
  29. +#if defined(HAVE_TIMINGSAFE_MEMCMP)
  30. +#define CRYPTO_memcmp timingsafe_memcmp
  31. +#elif !defined(HAVE_SSL) || !defined(HAVE_CRYPTO_MEMCMP)
  32. /* we need fixed time compare */
  33. #define CRYPTO_memcmp memcmp_fixedtime
  34. int memcmp_fixedtime(const void *s1, const void *s2, size_t n)
  35. --
  36. 2.31.1