mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
Ruby: Fix incorrect parsing of ranges
This commit is contained in:
@@ -402,7 +402,8 @@ abstract class RegExp extends AST::StringlikeLiteral {
|
||||
not exists(int x, int y | this.backreference(x, y) and x <= start and y >= end) and
|
||||
not exists(int x, int y |
|
||||
this.pStyleNamedCharacterProperty(x, y, _) and x <= start and y >= end
|
||||
)
|
||||
) and
|
||||
not exists(int x, int y | this.multiples(x, y, _, _) and x <= start and y >= end)
|
||||
}
|
||||
|
||||
predicate normalCharacter(int start, int end) {
|
||||
|
||||
@@ -29,29 +29,21 @@ regexp.rb:
|
||||
# 9| [RegExpRange] a{4,8}
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 9| [RegExpNormalChar] 4,8}
|
||||
|
||||
# 10| [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 10| [RegExpRange] a{,8}
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 10| [RegExpNormalChar] ,8}
|
||||
|
||||
# 11| [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 11| [InfiniteRepetitionQuantifier, RegExpRange] a{3,}
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 11| [RegExpNormalChar] 3,}
|
||||
|
||||
# 12| [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 12| [RegExpRange] a{7}
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 12| [RegExpNormalChar] 7}
|
||||
|
||||
# 15| [RegExpConstant, RegExpNormalChar] foo
|
||||
|
||||
# 15| [RegExpAlt] foo|bar
|
||||
@@ -428,8 +420,6 @@ regexp.rb:
|
||||
# 62| [RegExpRange] \p{^Alnum}{2,3}
|
||||
#-----| 0 -> [RegExpNamedCharacterProperty] \p{^Alnum}
|
||||
|
||||
# 62| [RegExpNormalChar] 2,3}
|
||||
|
||||
# 63| [RegExpCharacterClass] [a-f\p{Digit}]
|
||||
#-----| 0 -> [RegExpCharacterRange] a-f
|
||||
#-----| 1 -> [RegExpNamedCharacterProperty] \p{Digit}
|
||||
|
||||
@@ -23,16 +23,12 @@ term
|
||||
| regexp.rb:8:8:8:8 | d | RegExpConstant,RegExpNormalChar |
|
||||
| regexp.rb:9:2:9:2 | a | RegExpConstant,RegExpNormalChar |
|
||||
| regexp.rb:9:2:9:7 | a{4,8} | RegExpRange |
|
||||
| regexp.rb:9:4:9:7 | 4,8} | RegExpNormalChar |
|
||||
| regexp.rb:10:2:10:2 | a | RegExpConstant,RegExpNormalChar |
|
||||
| regexp.rb:10:2:10:6 | a{,8} | RegExpRange |
|
||||
| regexp.rb:10:4:10:6 | ,8} | RegExpNormalChar |
|
||||
| regexp.rb:11:2:11:2 | a | RegExpConstant,RegExpNormalChar |
|
||||
| regexp.rb:11:2:11:6 | a{3,} | InfiniteRepetitionQuantifier,RegExpRange |
|
||||
| regexp.rb:11:4:11:6 | 3,} | RegExpNormalChar |
|
||||
| regexp.rb:12:2:12:2 | a | RegExpConstant,RegExpNormalChar |
|
||||
| regexp.rb:12:2:12:5 | a{7} | RegExpRange |
|
||||
| regexp.rb:12:4:12:5 | 7} | RegExpNormalChar |
|
||||
| regexp.rb:15:2:15:4 | foo | RegExpConstant,RegExpNormalChar |
|
||||
| regexp.rb:15:2:15:8 | foo\|bar | RegExpAlt |
|
||||
| regexp.rb:15:6:15:8 | bar | RegExpConstant,RegExpNormalChar |
|
||||
@@ -169,7 +165,6 @@ term
|
||||
| regexp.rb:61:2:61:11 | \\P{Digit}+ | RegExpPlus |
|
||||
| regexp.rb:62:2:62:11 | \\p{^Alnum} | RegExpNamedCharacterProperty |
|
||||
| regexp.rb:62:2:62:16 | \\p{^Alnum}{2,3} | RegExpRange |
|
||||
| regexp.rb:62:13:62:16 | 2,3} | RegExpNormalChar |
|
||||
| regexp.rb:63:2:63:15 | [a-f\\p{Digit}] | RegExpCharacterClass |
|
||||
| regexp.rb:63:2:63:16 | [a-f\\p{Digit}]+ | RegExpPlus |
|
||||
| regexp.rb:63:3:63:3 | a | RegExpConstant,RegExpNormalChar |
|
||||
|
||||
Reference in New Issue
Block a user