[tor-commits] [tor/master] Make errno error log more useful for getrandom()

nickm at torproject.org nickm at torproject.org
Tue Dec 5 17:10:10 UTC 2017


commit 313360e6e6aa6bc56e1bc3661b68df5279b6b4bc
Author: Fernando Fernandez Mancera <ffernandezmancera at gmail.com>
Date:   Tue Dec 5 00:17:09 2017 +0100

    Make errno error log more useful for getrandom()
    
    Making errno error log more useful for getrandom() call. Adding if statement to
    make difference between ENOSYS and other errors.
    
    Fixes #24500
    
    Signed-off-by: Fernando Fernandez Mancera <ffernandezmancera at gmail.com>
---
 changes/ticket24500 |  3 +++
 src/common/crypto.c | 13 +++++++++++--
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/changes/ticket24500 b/changes/ticket24500
new file mode 100644
index 000000000..0f1778d46
--- /dev/null
+++ b/changes/ticket24500
@@ -0,0 +1,3 @@
+  o Code simplification and refactoring: 
+    - Making more useful log messages for errno errors on getrandom() call.
+      Closes ticket 24500.
diff --git a/src/common/crypto.c b/src/common/crypto.c
index 80137b0d8..7f034ee94 100644
--- a/src/common/crypto.c
+++ b/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, "This warning is caused by ENOSYS error."
+                 " You are running a version of Tor built to support"
+                 " getrandom(), but the kernel is too old and doesn't"
+                 " implement this function.");
+      } else {
+        log_warn(LD_CRYPTO, "Can't get entropy from getrandom(). %s error.",
+                 strerror(errno));
+      }
+
       getrandom_works = 0; /* Don't bother trying again. */
       return -1;
       /* LCOV_EXCL_STOP */





More information about the tor-commits mailing list