add proper shell escaping for Albino

This commit is contained in:
rick
2011-01-11 00:30:22 -08:00
parent 996f81d63d
commit fc84a4e989
2 changed files with 25 additions and 0 deletions
+13
View File
@@ -14,4 +14,17 @@ class Gollum::Albino < Albino
html.sub!(%r{</pre></div>\Z}, "</pre>\n</div>")
html
end
# Hotfix for vulnerable versions of Albino
if !instance_methods.include?('shell_escape')
def convert_options(options = {})
@options.merge(options).inject('') do |string, (flag, value)|
string + " -#{flag} #{shell_escape value}"
end
end
def shell_escape(str)
str.to_s.gsub("'", "\\\\'").gsub(";", '\\;')
end
end
end
+12
View File
@@ -353,6 +353,18 @@ context "Markup" do
compare(content, output)
end
test "code block with invalid lang" do
content = "a\n\n``` ls -al;\n\tbooya\n\tboom\n```\n\nb"
output = "<p>a</p>\n\n\n\n<p>b</p>"
compare(content, output)
end
test "code block with no lang" do
content = "a\n\n```\n\tls -al;\n\tbooya\n```\n\nb"
output = "<p>a</p>\n\n\n\n<p>b</p>"
compare(content, output)
end
#########################################################################
#
# Various