From 210af24abf66ee184f79f001d576482dfe180e1f Mon Sep 17 00:00:00 2001 From: Barzabel Date: Thu, 22 Oct 2026 21:24:33 +0300 Subject: [PATCH] svg: allocate a CSS block only for accepted selectors; charge class tokens (#2140) --- crates/svg/src/lib.rs | 19 +++++++++++++++---- crates/svg/src/tests.rs | 26 ++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/crates/svg/src/lib.rs b/crates/svg/src/lib.rs index 1f3dee63c..adddee0c0 100644 --- a/crates/svg/src/lib.rs +++ b/crates/svg/src/lib.rs @@ -483,13 +483,14 @@ fn parse_css(css: &str, sheet: &mut StyleSheet) -> Result<(), Error> { if sel.starts_with('@') { continue; } - let decls = parse_decls(body); + let mut decls = parse_decls(body); sheet.decls = sheet.decls.saturating_add(decls.len()); if sheet.decls > MAX_CSS_DECLARATIONS { return Err(Error::Xml(format!("its {uses}"## + ) + }; + let e = parse(svg(&uses).as_bytes()).unwrap_err(); + assert!(e.to_string().contains("