From 039acaa3b9a16a7f4c519ce007c1a020f080c26b Mon Sep 17 00:00:00 2001 From: Chris Malloy Date: Tue, 11 Jun 2024 02:40:59 -0300 Subject: [PATCH] Disabled query validation due to Java RegEx infinite parser loop on || --- .../java/jasper/repository/filter/Query.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/main/java/jasper/repository/filter/Query.java b/src/main/java/jasper/repository/filter/Query.java index bdea1791..382895fb 100644 --- a/src/main/java/jasper/repository/filter/Query.java +++ b/src/main/java/jasper/repository/filter/Query.java @@ -3,15 +3,17 @@ import jasper.repository.spec.QualifiedTag; public interface Query { - String ATOM = "!?" + QualifiedTag.SELECTOR; - String ATOMS = ATOM + "(?:[|:]" + ATOM + ")*"; - String GROUP = "(?:" + ATOMS + "|\\(" + ATOMS + "\\))"; // Allow parentheses - String GROUPS = GROUP + "(?:[|:]" + GROUP + ")*"; - String GROUP2 = "(?:" + GROUPS + "|\\(" + GROUPS + "\\))"; // Allow nested parentheses - String GROUP2S = GROUP2 + "(?:[|:]" + GROUP2 + ")*"; - String GROUP3 = "(?:" + GROUP2S + "|\\(" + GROUP2S + "\\))"; // Allow third parentheses - String GROUP3S = GROUP3 + "(?:[|:]" + GROUP3 + ")*"; - String REGEX = GROUP3S; +// String ATOM = "!?" + QualifiedTag.SELECTOR; +// String ATOMS = ATOM + "(?:[|:]" + ATOM + ")*"; +// String GROUP = "(?:" + ATOMS + "|\\(" + ATOMS + "\\))"; // Allow parentheses +// String GROUPS = GROUP + "(?:[|:]" + GROUP + ")*"; +// String GROUP2 = "(?:" + GROUPS + "|\\(" + GROUPS + "\\))"; // Allow nested parentheses +// String GROUP2S = GROUP2 + "(?:[|:]" + GROUP2 + ")*"; +// String GROUP3 = "(?:" + GROUP2S + "|\\(" + GROUP2S + "\\))"; // Allow third parentheses +// String GROUP3S = GROUP3 + "(?:[|:]" + GROUP3 + ")*"; +// String REGEX = GROUP3S; + // TODO: Query with || causes infinite loop in validator + String REGEX = "[!_+a-z0-9/.@|:()*]+"; int QUERY_LEN = 4096; int SEARCH_LEN = 512;