Merge pull request #22837 from jketema/refactor-non-cpp-recursive-str… · github/codeql@ff3231c · GitHub
Skip to content

Commit ff3231c

Browse files
authored
Merge pull request #22837 from jketema/refactor-non-cpp-recursive-string-concats
Java/Ruby: Replace recursive algorithm string builders
2 parents 59bd591 + d290e2f commit ff3231c

3 files changed

Lines changed: 12 additions & 28 deletions

File tree

‎java/ql/lib/semmle/code/java/security/Encryption.qll‎

Lines changed: 3 additions & 7 deletions

‎java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql‎

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,15 @@ private string rankedInsecureAlgorithm(int i) {
3434
result = rank[i](string s | s = getAnInsecureAlgorithmName())
3535
}
3636

37-
private string insecureAlgorithmString(int i) {
38-
i = 1 and result = rankedInsecureAlgorithm(i)
39-
or
40-
result = rankedInsecureAlgorithm(i) + "|" + insecureAlgorithmString(i - 1)
37+
private string insecureAlgorithmString() {
38+
result = concat(int i | | rankedInsecureAlgorithm(i), "|" order by i desc)
4139
}
4240

4341
/**
4442
* Gets the regular expression used for matching strings that look like they
4543
* contain an algorithm that is known to be insecure.
4644
*/
47-
string getInsecureAlgorithmRegex() {
48-
result = algorithmRegex(insecureAlgorithmString(max(int i | exists(rankedInsecureAlgorithm(i)))))
49-
}
45+
string getInsecureAlgorithmRegex() { result = algorithmRegex(insecureAlgorithmString()) }
5046

5147
bindingset[algorithmString]
5248
private string algorithmRegex(string algorithmString) {

‎ruby/ql/lib/codeql/ruby/security/OpenSSL.qll‎

Lines changed: 6 additions & 14 deletions

0 commit comments

Comments
 (0)