about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-10-24 21:09:42 +0000
committerEric Wong <e@80x24.org>2019-10-30 08:47:16 +0000
commite0c7955ead5251f969c742e3aab8d912f7d510f3 (patch)
treeffcc818225ef1f1d1b06de11a6dffb0437b7f794
parentf9fc5cf2e8cefda4a56d937ed217e47689fd7e49 (diff)
downloadpublic-inbox-e0c7955ead5251f969c742e3aab8d912f7d510f3.tar.gz
Bad things happen when user data can control our stack size.
-rw-r--r--HACKING5
1 files changed, 5 insertions, 0 deletions
diff --git a/HACKING b/HACKING
index 666d504e..859745ef 100644
--- a/HACKING
+++ b/HACKING
@@ -43,6 +43,11 @@ distribute and verify.  public-inbox itself will only be implemented
 in scripting languages (currently Perl 5) and optional JIT-compiled C
 (via Inline::C)
 
+Do not recurse on user-supplied data.  Neither Perl or C handle
+deep recursion gracefully.  See lib/PublicInbox/SearchThread.pm
+and lib/PublicInbox/MsgIter.pm for examples of non-recursive
+alternatives to previously-recursive algorithms.
+
 Performance should be reasonably good for server administrators, too,
 and we will sacrifice features to achieve predictable performance.
 Encouraging folks to self-host will be easier with lower hardware