summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2021-03-15 08:52:29 -0400
committerNick Mathewson <nickm@torproject.org>2021-03-15 08:52:29 -0400
commit1fdfa8eeed7f29b1e44f29d0a07e467f6adb062f (patch)
tree2c6e75a5b2789df02f6b3a26468d736295a29686
parent849fde27fe6555fd28400a4a00996899ee6983c1 (diff)
parent7c5a67ccd983bb028d21a5e8aa48b4cd9d6a8a1c (diff)
downloadtor-1fdfa8eeed7f29b1e44f29d0a07e467f6adb062f.tar.gz
tor-1fdfa8eeed7f29b1e44f29d0a07e467f6adb062f.zip
Merge branch 'maint-0.4.5' into release-0.4.5
-rw-r--r--changes/ticket40286_minimal5
-rw-r--r--src/feature/dirparse/unparseable.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/changes/ticket40286_minimal b/changes/ticket40286_minimal
new file mode 100644
index 0000000000..b8669debaa
--- /dev/null
+++ b/changes/ticket40286_minimal
@@ -0,0 +1,5 @@
+ o Major bugfixes (denial of service):
+ - Disable the dump_desc() function that we used to dump unparseable
+ information to disk. It was called incorrectly in several places,
+ in a way that could lead to excessive CPU usage.
+ Fixes bug 40286; bugfix on 0.2.2.1-alpha.
diff --git a/src/feature/dirparse/unparseable.c b/src/feature/dirparse/unparseable.c
index 98b68f90bb..da3c80e383 100644
--- a/src/feature/dirparse/unparseable.c
+++ b/src/feature/dirparse/unparseable.c
@@ -497,6 +497,12 @@ dump_desc,(const char *desc, const char *type))
{
tor_assert(desc);
tor_assert(type);
+#ifndef TOR_UNIT_TESTS
+ /* On older versions of Tor we are disabling this function, since it
+ * can be called with strings that are far too long. */
+ if (1)
+ return;
+#endif
size_t len;
/* The SHA256 of the string */
uint8_t digest_sha256[DIGEST256_LEN];