Hi.
I spent about 10 hours on saturday trying to understand why my
blog/Typo was taking more than 500M and then crashing my server.
There is a recursive function in redcloth.rb which is not written
properly (a variant is in the parameters, but is not even checked.
Variant is existing to be checked, not just print a debug...).
Here is the patch to prevent this. Please apply them and release
something soon because it''s really nasty.
--
http://penso.info/
-------------- next part --------------
--- redcloth.rb.old 2006-08-28 15:13:55.000000000 +0200
+++ redcloth.rb 2006-08-28 15:14:35.000000000 +0200
@@ -980,7 +980,10 @@
HASTAG_MATCH = /(<\/?\w[^\n]*?>)/m
ALLTAG_MATCH = /(<\/?\w[^\n]*?>)|.*?(?=<\/?\w[^\n]*?>|$)/m
- def glyphs_textile( text, level = 0 )
+ def glyphs_textile( text, level = 50 )
+ if level < 0
+ return
+ end
if text !~ HASTAG_MATCH
pgl text
footnote_ref text
@@ -996,7 +999,7 @@
codepre = 0 if codepre < 0
end
elsif codepre.zero?
- glyphs_textile( line, level + 1 )
+ glyphs_textile( line, level - 1 )
else
htmlesc( line, :NoQuotes )
end