summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2019-06-11 11:29:46 -0400
committerDavid Goulet <dgoulet@torproject.org>2019-06-11 11:29:46 -0400
commitea14fb136c6c771320d7c4ff6beab05d1dbc73aa (patch)
treec50e847ede9f9995a865aedd08811be834074268
parentce89fe36c8d5e6210a2418430c91c3df03d86bdc (diff)
parent5068ccab0b1849e836729c43a2ca891139cf107b (diff)
downloadtor-ea14fb136c6c771320d7c4ff6beab05d1dbc73aa.tar.gz
tor-ea14fb136c6c771320d7c4ff6beab05d1dbc73aa.zip
Merge branch 'tor-github/pr/1050' into maint-0.4.1
-rw-r--r--changes/ticket306865
-rw-r--r--src/lib/crypt_ops/crypto_rand_fast.c6
-rw-r--r--src/lib/malloc/map_anon.c5
3 files changed, 15 insertions, 1 deletions
diff --git a/changes/ticket30686 b/changes/ticket30686
new file mode 100644
index 0000000000..36473c1a02
--- /dev/null
+++ b/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.
diff --git a/src/lib/crypt_ops/crypto_rand_fast.c b/src/lib/crypt_ops/crypto_rand_fast.c
index c7f71a17c9..e6ceb42ccb 100644
--- a/src/lib/crypt_ops/crypto_rand_fast.c
+++ b/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;
}
diff --git a/src/lib/malloc/map_anon.c b/src/lib/malloc/map_anon.c
index 219bd706cc..0f6a4150c7 100644
--- a/src/lib/malloc/map_anon.c
+++ b/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