Erik Krogh Kristensen
|
c58f67b189
|
reintroduce performance improvement - but sound this time
|
2021-01-06 10:44:13 +01:00 |
|
Erik Krogh Kristensen
|
4392f0270c
|
autoformat
|
2021-01-06 10:37:36 +01:00 |
|
Erik Krogh Kristensen
|
3d98732136
|
support nested stars in js/ReDoS
|
2021-01-06 10:37:35 +01:00 |
|
Erik Krogh Kristensen
|
77967c3e63
|
undo unsound optimization in js/ReDoS
|
2021-01-06 10:36:21 +01:00 |
|
Erik Krogh Kristensen
|
34dda6d38b
|
refactor to share predicates between regular expression queries
|
2020-12-18 16:15:56 +01:00 |
|
Erik Krogh Kristensen
|
cc98c41dd6
|
revert marking repetitions with possibly empty body as forks
|
2020-12-03 20:08:07 +01:00 |
|
Erik Krogh Kristensen
|
33b2701551
|
refine isFork to remove false positive when a state has epsilon transition to itself
|
2020-11-29 21:42:50 +01:00 |
|
Erik Krogh Kristensen
|
729073fb43
|
detect ReDoS when the choices are "match some string" or "match Epsilon"
|
2020-11-27 20:15:23 +01:00 |
|
Erik Krogh Kristensen
|
46ca56458a
|
introduce a printable state class
|
2020-11-27 13:45:41 +01:00 |
|
Erik Krogh Kristensen
|
8a3e87fe42
|
remove unnecessary one-step inline
|
2020-11-27 13:45:41 +01:00 |
|
Erik Krogh Kristensen
|
36b9f0254e
|
performance improvements for suffix check in js/redos
|
2020-11-27 13:45:41 +01:00 |
|
Erik Krogh Kristensen
|
f576144ec6
|
more pruning based on states being inside a repetition
|
2020-11-26 17:30:37 +01:00 |
|
Erik Krogh Kristensen
|
11d878b413
|
adjust comments to reflect the precission of the suffix search
|
2020-11-25 14:40:33 +01:00 |
|
Erik Krogh Kristensen
|
500b94b50e
|
rename witness to pump
|
2020-11-25 13:57:21 +01:00 |
|
Erik Krogh Kristensen
|
e03c19b7fc
|
only search prefixes/suffixes from the candidates that are used in the end
|
2020-11-25 13:57:20 +01:00 |
|
Erik Krogh Kristensen
|
b8fabfa24e
|
only construct prefix/suffix for regular expressions that has a pumpable state
|
2020-11-25 13:57:20 +01:00 |
|
Erik Krogh Kristensen
|
a8944c8953
|
model accept states more accurately by adding an AcceptAny state, modelling $, and checking the existence of rejecting suffixes
|
2020-11-25 13:57:20 +01:00 |
|
Erik Krogh Kristensen
|
d9ebb7b20e
|
escape tabs
|
2020-11-25 13:57:20 +01:00 |
|
Erik Krogh Kristensen
|
bcb2f2768d
|
search for a prefix to the state that causes exponential backtracking
|
2020-11-25 13:57:20 +01:00 |
|
Erik Krogh Kristensen
|
94aa162f8d
|
prune state-pairs that are outside a backtracking repetition
|
2020-11-24 20:18:45 +01:00 |
|
Erik Krogh Kristensen
|
f3c3b82827
|
move condition inside parens
|
2020-11-24 20:16:40 +01:00 |
|
Erik Krogh Kristensen
|
d1706e8048
|
reuse InfiniteRepetitionQuantifier from SuperLiniearBacktracking
|
2020-11-24 20:16:36 +01:00 |
|
Erik Krogh Kristensen
|
a3b21ad43b
|
Apply suggestions from code review
Co-authored-by: Asger F <asgerf@github.com>
|
2020-11-19 11:42:12 +01:00 |
|
Erik Krogh Kristensen
|
cc1d797cef
|
adjust top comment to reflect what the query does, and add comment about which kind of accepting state is assumed.
|
2020-11-18 21:32:31 +01:00 |
|
Erik Krogh Kristensen
|
58c31f0eca
|
prune more regexps initially in the ReDoS query
|
2020-11-18 15:14:46 +01:00 |
|
Erik Krogh Kristensen
|
c4153a617e
|
remove duplicated test cases from ReDoS, and adjust variables names to match test output
|
2020-11-18 14:49:09 +01:00 |
|
Erik Krogh Kristensen
|
8270bf5bb9
|
make the character search skip unencodable characters
|
2020-11-18 11:55:49 +01:00 |
|
Erik Krogh Kristensen
|
55f2f86a26
|
limit the search of state-pairs to the ones that are reachable within the given length
|
2020-11-18 09:23:35 +01:00 |
|
Erik Krogh Kristensen
|
97acf1fd87
|
fix FP related to inverted character classes choosing a char that was not matched by the char class
|
2020-11-17 17:34:43 +01:00 |
|
Erik Krogh Kristensen
|
a49b99b18c
|
autoformat
|
2020-11-13 20:06:17 +01:00 |
|
Erik Krogh Kristensen
|
affb11b0e3
|
changes based on review
|
2020-11-13 19:46:37 +01:00 |
|
Erik Krogh Kristensen
|
2f4fcc2f5e
|
Apply suggestions from code review
Co-authored-by: Asger F <asgerf@github.com>
|
2020-11-13 18:03:07 +01:00 |
|
Erik Krogh Kristensen
|
17a687b344
|
testing many possible intersections, instead of a single intersection
|
2020-11-08 23:24:36 +01:00 |
|
Erik Krogh Kristensen
|
34fd0d89f5
|
finding the minimum that is not an FP - instead of finding the minimum and then checking if it was an FP. And detecting more FPs by finding when a witness pass through the accept state
|
2020-11-08 23:24:27 +01:00 |
|
Erik Krogh Kristensen
|
ac514b1739
|
remove false positives where the analysis would wrongly conclude that the accept state could not be reached
|
2020-11-08 23:24:03 +01:00 |
|
Erik Krogh Kristensen
|
5f199e8b1a
|
improve performance by removing bindingset[char]
|
2020-11-08 23:24:03 +01:00 |
|
Erik Krogh Kristensen
|
d038e9c658
|
small performance improvements
|
2020-11-08 23:24:03 +01:00 |
|
Erik Krogh Kristensen
|
a5e75f53ff
|
add support for escape char classes inside char classes
|
2020-11-08 23:22:49 +01:00 |
|
Erik Krogh Kristensen
|
0063cb140c
|
add support for \W, \S, \D
|
2020-11-08 23:16:56 +01:00 |
|
Erik Krogh Kristensen
|
2dd8b6ffef
|
support \f and \v in the \s class
|
2020-11-08 23:16:56 +01:00 |
|
Erik Krogh Kristensen
|
68fe03060d
|
support \d \s and \w in ReDoS.ql
|
2020-11-08 23:16:56 +01:00 |
|
Erik Krogh Kristensen
|
fa54ad1a5e
|
refactor character class implementation in ReDoS.ql - preparing support for RegExpCharacterClassEscape
|
2020-11-08 23:16:55 +01:00 |
|
Erik Krogh Kristensen
|
a09ffd5cda
|
expand getAOverlapBetweenCharacterClasses to support overlap between more char classes
|
2020-11-08 23:16:37 +01:00 |
|
Erik Krogh Kristensen
|
4ede04f4d1
|
improve performance by pruning based on shared root
|
2020-11-08 23:16:37 +01:00 |
|
Erik Krogh Kristensen
|
82252c0f1c
|
detect redos between charclass and inverted charclass
|
2020-11-08 23:16:34 +01:00 |
|
Erik Krogh Kristensen
|
16473fc2a4
|
matching a inverted char class with a char
|
2020-11-06 10:18:57 +01:00 |
|
Erik Krogh Kristensen
|
804aaf36f0
|
support inverted char class and dot
|
2020-11-06 10:18:57 +01:00 |
|
Erik Krogh Kristensen
|
64d680e2d3
|
support that an inverted char class can intersect with itself
|
2020-11-06 10:18:57 +01:00 |
|
Erik Krogh Kristensen
|
321cf09bd8
|
add redos support for the simplest possible inverted char class
|
2020-11-06 10:18:57 +01:00 |
|
Erik Krogh Kristensen
|
d04f3df1cd
|
remove rendundant check
|
2020-11-06 10:18:57 +01:00 |
|