Skip to content

Commit c2679d8

Browse files
authored
Merge pull request #10213 from erik-krogh/wayToLargeRange
put a limit on the length of the equivalent range in overly-large-range
2 parents 4a22097 + f47b097 commit c2679d8

File tree

4 files changed

+24
-4
lines changed

4 files changed

+24
-4
lines changed

java/ql/lib/semmle/code/java/security/OverlyLargeRangeQuery.qll

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,8 +238,13 @@ module RangePrinter {
238238

239239
/** Gets a char range that is overly large because of `reason`. */
240240
RegExpCharacterRange getABadRange(string reason, int priority) {
241+
result instanceof OverlyWideRange and
241242
priority = 0 and
242-
reason = "is equivalent to " + result.(OverlyWideRange).printEquivalent()
243+
exists(string equiv | equiv = result.(OverlyWideRange).printEquivalent() |
244+
if equiv.length() <= 50
245+
then reason = "is equivalent to " + equiv
246+
else reason = "is equivalent to " + equiv.substring(0, 50) + "..."
247+
)
243248
or
244249
priority = 1 and
245250
exists(RegExpCharacterRange other |

javascript/ql/lib/semmle/javascript/security/OverlyLargeRangeQuery.qll

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,8 +238,13 @@ module RangePrinter {
238238

239239
/** Gets a char range that is overly large because of `reason`. */
240240
RegExpCharacterRange getABadRange(string reason, int priority) {
241+
result instanceof OverlyWideRange and
241242
priority = 0 and
242-
reason = "is equivalent to " + result.(OverlyWideRange).printEquivalent()
243+
exists(string equiv | equiv = result.(OverlyWideRange).printEquivalent() |
244+
if equiv.length() <= 50
245+
then reason = "is equivalent to " + equiv
246+
else reason = "is equivalent to " + equiv.substring(0, 50) + "..."
247+
)
243248
or
244249
priority = 1 and
245250
exists(RegExpCharacterRange other |

python/ql/lib/semmle/python/security/OverlyLargeRangeQuery.qll

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,8 +238,13 @@ module RangePrinter {
238238

239239
/** Gets a char range that is overly large because of `reason`. */
240240
RegExpCharacterRange getABadRange(string reason, int priority) {
241+
result instanceof OverlyWideRange and
241242
priority = 0 and
242-
reason = "is equivalent to " + result.(OverlyWideRange).printEquivalent()
243+
exists(string equiv | equiv = result.(OverlyWideRange).printEquivalent() |
244+
if equiv.length() <= 50
245+
then reason = "is equivalent to " + equiv
246+
else reason = "is equivalent to " + equiv.substring(0, 50) + "..."
247+
)
243248
or
244249
priority = 1 and
245250
exists(RegExpCharacterRange other |

ruby/ql/lib/codeql/ruby/security/OverlyLargeRangeQuery.qll

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,8 +238,13 @@ module RangePrinter {
238238

239239
/** Gets a char range that is overly large because of `reason`. */
240240
RegExpCharacterRange getABadRange(string reason, int priority) {
241+
result instanceof OverlyWideRange and
241242
priority = 0 and
242-
reason = "is equivalent to " + result.(OverlyWideRange).printEquivalent()
243+
exists(string equiv | equiv = result.(OverlyWideRange).printEquivalent() |
244+
if equiv.length() <= 50
245+
then reason = "is equivalent to " + equiv
246+
else reason = "is equivalent to " + equiv.substring(0, 50) + "..."
247+
)
243248
or
244249
priority = 1 and
245250
exists(RegExpCharacterRange other |

0 commit comments

Comments
 (0)