Browse Source

Merge branch 'tor-github/pr/1050' into maint-0.4.1

David Goulet 5 years ago
parent
commit
ea14fb136c
3 changed files with 15 additions and 1 deletions
  1. 5 0
      changes/ticket30686
  2. 5 1
      src/lib/crypt_ops/crypto_rand_fast.c
  3. 5 0
      src/lib/malloc/map_anon.c

+ 5 - 0
changes/ticket30686

@@ -0,0 +1,5 @@
+  o Minor features (logging):
+    - Give a more useful assertion failure message if we think we have
+      minherit() but we fail to make a region non-inheritable. Give a
+      compile-time warning if our support for minherit() is
+      incomplete. Closes ticket 30686.

+ 5 - 1
src/lib/crypt_ops/crypto_rand_fast.c

@@ -181,7 +181,11 @@ crypto_fast_rng_new_from_seed(const uint8_t *seed)
 #else
   /* We decided above that noinherit would always do _something_. Assert here
    * that we were correct. */
-  tor_assert(inherit != INHERIT_RES_KEEP);
+  tor_assertf(inherit != INHERIT_RES_KEEP,
+              "We failed to create a non-inheritable memory region, even "
+              "though we believed such a failure to be impossible! This is "
+              "probably a bug in Tor support for your platform; please report "
+              "it.");
 #endif /* defined(CHECK_PID) || ... */
   return result;
 }

+ 5 - 0
src/lib/malloc/map_anon.c

@@ -74,6 +74,11 @@
 
 #endif /* defined(HAVE_MINHERIT) || ... */
 
+#if defined(HAVE_MINHERIT) && !defined(FLAG_ZERO) && !defined(FLAG_NOINHERIT)
+#warn "minherit() is defined, but we couldn't find the right flag for it."
+#warn "This is probably a bug in Tor's support for this platform."
+#endif
+
 /**
  * Helper: try to prevent the <b>sz</b> bytes at <b>mem</b> from being swapped
  * to disk.  Return 0 on success or if the facility is not available on this