Browse Source

Merge branch 'maint-0.3.2'

Nick Mathewson 6 years ago
parent
commit
a798ba6e9b
2 changed files with 14 additions and 2 deletions
  1. 3 0
      changes/ticket24500
  2. 11 2
      src/common/crypto.c

+ 3 - 0
changes/ticket24500

@@ -0,0 +1,3 @@
+  o Minor features (logging):
+    - Provide better warnings when the getrandom() syscall fails.
+      Closes ticket 24500.

+ 11 - 2
src/common/crypto.c

@@ -2875,8 +2875,17 @@ crypto_strongest_rand_syscall(uint8_t *out, size_t out_len)
       tor_assert(errno != EAGAIN);
       tor_assert(errno != EINTR);
 
-      /* Probably ENOSYS. */
-      log_warn(LD_CRYPTO, "Can't get entropy from getrandom().");
+      /* Useful log message for errno. */
+      if (errno == ENOSYS) {
+        log_warn(LD_CRYPTO, "Can't get entropy from getrandom(). "
+                 " You are running a version of Tor built to support"
+                 " getrandom(), but the kernel doesn't implement this"
+                 " implement this function--probably because it is too old?");
+      } else {
+        log_warn(LD_CRYPTO, "Can't get entropy from getrandom(): %s.",
+                 strerror(errno));
+      }
+
       getrandom_works = 0; /* Don't bother trying again. */
       return -1;
       /* LCOV_EXCL_STOP */