File tree 1 file changed +12
-2
lines changed
shared/regex/codeql/regex/nfa
1 file changed +12
-2
lines changed Original file line number Diff line number Diff line change @@ -451,7 +451,15 @@ module Make<RegexTreeViewSig TreeImpl> {
451
451
}
452
452
453
453
bindingset [ char]
454
- override predicate matches ( string char ) { not hasChildThatMatches ( cc , char ) }
454
+ override predicate matches ( string char ) {
455
+ not hasChildThatMatches ( cc , char ) and
456
+ (
457
+ // detect unsupported char classes that doesn't match anything (e.g. `\p{L}` in ruby), and don't report any matches
458
+ hasChildThatMatches ( cc , _)
459
+ or
460
+ not exists ( cc .getAChild ( ) ) // [^] still matches everything
461
+ )
462
+ }
455
463
}
456
464
457
465
/**
@@ -536,7 +544,9 @@ module Make<RegexTreeViewSig TreeImpl> {
536
544
537
545
bindingset [ char]
538
546
override predicate matches ( string char ) {
539
- not classEscapeMatches ( charClass .toLowerCase ( ) , char )
547
+ not classEscapeMatches ( charClass .toLowerCase ( ) , char ) and
548
+ // detect unsupported char classes (e.g. `\p{L}` in ruby), and don't report any matches
549
+ classEscapeMatches ( charClass .toLowerCase ( ) , _)
540
550
}
541
551
}
542
552
You can’t perform that action at this time.
0 commit comments