Skip to content

Commit

Permalink
Disabled query validation due to Java RegEx infinite parser loop on ||
Browse files Browse the repository at this point in the history
  • Loading branch information
cjmalloy committed Jun 11, 2024
1 parent e14d0e1 commit 039acaa
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions src/main/java/jasper/repository/filter/Query.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 039acaa

Please sign in to comment.