Browse Source

Use timingsafe_memcmp() where available.

See ticket 17944; patch from "logan".
Nick Mathewson 8 years ago
parent
commit
bc2cd0ff2b
3 changed files with 8 additions and 0 deletions
  1. 3 0
      changes/17944
  2. 1 0
      configure.ac
  3. 4 0
      src/common/di_ops.c

+ 3 - 0
changes/17944

@@ -0,0 +1,3 @@
+  o Minor features (portability):
+    - Use timingsafe_memcmp() where available. Closes ticket 17944;
+      patch from "logan".

+ 1 - 0
configure.ac

@@ -381,6 +381,7 @@ AC_CHECK_FUNCS(
         backtrace_symbols_fd \
         clock_gettime \
 	eventfd \
+	timingsafe_memcmp \
         flock \
         ftime \
         getaddrinfo \

+ 4 - 0
src/common/di_ops.c

@@ -25,6 +25,9 @@
 int
 tor_memcmp(const void *a, const void *b, size_t len)
 {
+#ifdef HAVE_TIMINGSAFE_MEMCMP
+  return timingsafe_memcmp(a, b, len);
+#else
   const uint8_t *x = a;
   const uint8_t *y = b;
   size_t i = len;
@@ -83,6 +86,7 @@ tor_memcmp(const void *a, const void *b, size_t len)
   }
 
   return retval;
+#endif /* timingsafe_memcmp */
 }
 
 /**