Browse Source

Check for the existence of the next significant bracket (#985)

pull/986/head
Tobi 1 year ago committed by GitHub
parent
commit
71a09c1193
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 6
      json-path/src/main/java/com/jayway/jsonpath/internal/path/PathCompiler.java
  2. 12
      json-path/src/test/java/com/jayway/jsonpath/Issue_970.java
  3. 12
      json-path/src/test/java/com/jayway/jsonpath/Issue_973.java

6
json-path/src/main/java/com/jayway/jsonpath/internal/path/PathCompiler.java

@ -625,7 +625,11 @@ public class PathCompiler {
fail("Property has not been closed - missing closing " + potentialStringDelimiter);
}
int endBracketIndex = path.indexOfNextSignificantChar(endPosition, CLOSE_SQUARE_BRACKET) + 1;
int endBracketIndex = path.indexOfNextSignificantChar(endPosition, CLOSE_SQUARE_BRACKET);
if(endBracketIndex == -1) {
fail("Property has not been closed - missing closing ]");
}
endBracketIndex++;
path.setPosition(endBracketIndex);

12
json-path/src/test/java/com/jayway/jsonpath/Issue_970.java

@ -0,0 +1,12 @@
package com.jayway.jsonpath;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThatNoException;
public class Issue_970 {
@Test
public void shouldNotCauseStackOverflow() {
assertThatNoException().isThrownBy(() -> Criteria.where("[']',"));
}
}

12
json-path/src/test/java/com/jayway/jsonpath/Issue_973.java

@ -0,0 +1,12 @@
package com.jayway.jsonpath;
import org.junit.Test;
import static org.assertj.core.api.Assertions.*;
public class Issue_973 {
@Test
public void shouldNotCauseStackOverflow() {
assertThatNoException().isThrownBy(() -> Criteria.parse("@[\"\",/\\"));
}
}
Loading…
Cancel
Save