diff --git a/askama/src/filters/mod.rs b/askama/src/filters/mod.rs index 6f078948..92744779 100644 --- a/askama/src/filters/mod.rs +++ b/askama/src/filters/mod.rs @@ -377,7 +377,7 @@ impl fmt::Display for TruncateFilter { #[inline] pub fn indent(s: impl ToString, width: usize) -> Result { fn indent(s: String, width: usize) -> Result { - if width >= MAX_LEN { + if width >= MAX_LEN || s.len() >= MAX_LEN { return Ok(s); } let mut indented = String::new(); @@ -834,4 +834,10 @@ mod tests { assert_eq!(&title("fOO").unwrap(), "Foo"); assert_eq!(&title("fOo BaR").unwrap(), "Foo Bar"); } + + #[test] + fn fuzzed_indent_filter() { + let s = "hello\nfoo\nbar".to_string().repeat(1024); + assert_eq!(indent(s.clone(), 4).unwrap().to_string(), s); + } }