Skip to content

Commit 90bebaa

Browse files
authored
Merge pull request #6960 from erik-krogh/useSetLiteral
use set literal instead of big disjunction of literals
2 parents 090fb2d + a3c55c2 commit 90bebaa

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+590
-1259
lines changed

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,7 @@
1414
import java
1515

1616
private string suspicious() {
17-
result = "%password%" or
18-
result = "%passwd%" or
19-
result = "%account%" or
20-
result = "%accnt%" or
21-
result = "%trusted%"
17+
result = ["%password%", "%passwd%", "%account%", "%accnt%", "%trusted%"]
2218
}
2319

2420
private string nonSuspicious() {

java/ql/src/Compatibility/JDK9/JdkInternalAccess.ql

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -111,16 +111,11 @@ predicate jdkPackage(Package p) {
111111
p.getName() = pkgName or
112112
p.getName().prefix(pkgName.length() + 1) = pkgName + "."
113113
|
114-
pkgName = "com.sun" or
115-
pkgName = "sun" or
116-
pkgName = "java" or
117-
pkgName = "javax" or
118-
pkgName = "com.oracle.net" or
119-
pkgName = "genstubs" or
120-
pkgName = "jdk" or
121-
pkgName = "build.tools" or
122-
pkgName = "org.omg.CORBA" or
123-
pkgName = "org.ietf.jgss"
114+
pkgName =
115+
[
116+
"com.sun", "sun", "java", "javax", "com.oracle.net", "genstubs", "jdk", "build.tools",
117+
"org.omg.CORBA", "org.ietf.jgss"
118+
]
124119
)
125120
}
126121

java/ql/src/Security/CWE/CWE-798/SensitiveApi.qll

Lines changed: 387 additions & 462 deletions
Large diffs are not rendered by default.

java/ql/src/Violations of Best Practice/Magic Constants/MagicConstantsString.ql

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -20,34 +20,15 @@ import MagicConstants
2020
* https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#getProperties()
2121
*/
2222
predicate isSystemProperty(string e) {
23-
e = "java.version" or
24-
e = "java.vendor" or
25-
e = "java.vendor.url" or
26-
e = "java.home" or
27-
e = "java.vm.specification.version" or
28-
e = "java.vm.specification.vendor" or
29-
e = "java.vm.specification.name" or
30-
e = "java.vm.version" or
31-
e = "java.vm.vendor" or
32-
e = "java.vm.name" or
33-
e = "java.specification.version" or
34-
e = "java.specification.vendor" or
35-
e = "java.specification.name" or
36-
e = "java.class.version" or
37-
e = "java.class.path" or
38-
e = "java.library.path" or
39-
e = "java.io.tmpdir" or
40-
e = "java.compiler" or
41-
e = "java.ext.dirs" or
42-
e = "os.name" or
43-
e = "os.arch" or
44-
e = "os.version" or
45-
e = "file.separator" or
46-
e = "path.separator" or
47-
e = "line.separator" or
48-
e = "user.name" or
49-
e = "user.home" or
50-
e = "user.dir"
23+
e =
24+
[
25+
"java.version", "java.vendor", "java.specification.version", "java.specification.vendor",
26+
"java.specification.name", "java.class.version", "java.class.path", "java.library.path",
27+
"java.io.tmpdir", "java.compiler", "java.ext.dirs", "os.name", "java.vendor.url", "os.arch",
28+
"os.version", "file.separator", "path.separator", "line.separator", "user.name", "user.home",
29+
"user.dir", "java.home", "java.vm.specification.version", "java.vm.specification.vendor",
30+
"java.vm.specification.name", "java.vm.version", "java.vm.vendor", "java.vm.name"
31+
]
5132
}
5233

5334
predicate trivialContext(Literal e) {

javascript/ql/lib/semmle/javascript/DOM.qll

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -179,15 +179,7 @@ module DOM {
179179
eltName = attr.getElement().getName() and
180180
attrName = attr.getName()
181181
|
182-
(
183-
eltName = "script" or
184-
eltName = "iframe" or
185-
eltName = "embed" or
186-
eltName = "video" or
187-
eltName = "audio" or
188-
eltName = "source" or
189-
eltName = "track"
190-
) and
182+
eltName = ["script", "iframe", "embed", "video", "audio", "source", "track"] and
191183
attrName = "src"
192184
or
193185
(
@@ -258,11 +250,11 @@ module DOM {
258250
/** Gets a call that queries the DOM for a collection of DOM nodes. */
259251
private DataFlow::SourceNode domElementCollection() {
260252
exists(string collectionName |
261-
collectionName = "getElementsByClassName" or
262-
collectionName = "getElementsByName" or
263-
collectionName = "getElementsByTagName" or
264-
collectionName = "getElementsByTagNameNS" or
265-
collectionName = "querySelectorAll"
253+
collectionName =
254+
[
255+
"getElementsByClassName", "getElementsByName", "getElementsByTagName",
256+
"getElementsByTagNameNS", "querySelectorAll"
257+
]
266258
|
267259
(
268260
result = documentRef().getAMethodCall(collectionName) or
@@ -274,11 +266,8 @@ module DOM {
274266
/** Gets a call that creates a DOM node or queries the DOM for a DOM node. */
275267
private DataFlow::SourceNode domElementCreationOrQuery() {
276268
exists(string methodName |
277-
methodName = "createElement" or
278-
methodName = "createElementNS" or
279-
methodName = "createRange" or
280-
methodName = "getElementById" or
281-
methodName = "querySelector"
269+
methodName =
270+
["createElement", "createElementNS", "createRange", "getElementById", "querySelector"]
282271
|
283272
result = documentRef().getAMethodCall(methodName) or
284273
result = DataFlow::globalVarRef(methodName).getACall()
@@ -465,11 +454,7 @@ module DOM {
465454
private class DefaultRange extends Range {
466455
DefaultRange() {
467456
exists(string propName | this = documentRef().getAPropertyRead(propName) |
468-
propName = "documentURI" or
469-
propName = "documentURIObject" or
470-
propName = "location" or
471-
propName = "referrer" or
472-
propName = "URL"
457+
propName = ["documentURI", "documentURIObject", "location", "referrer", "URL"]
473458
)
474459
or
475460
this = DOM::domValueRef().getAPropertyRead("baseUri")

javascript/ql/lib/semmle/javascript/Files.qll

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -246,13 +246,7 @@ class File extends Container, @file {
246246
* A file type.
247247
*/
248248
class FileType extends string {
249-
FileType() {
250-
this = "javascript" or
251-
this = "html" or
252-
this = "typescript" or
253-
this = "json" or
254-
this = "yaml"
255-
}
249+
FileType() { this = ["javascript", "html", "typescript", "json", "yaml"] }
256250

257251
/**
258252
* Holds if this is the JavaScript file type.

javascript/ql/lib/semmle/javascript/JSDoc.qll

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -291,13 +291,7 @@ class JSDocNamedTypeExpr extends @jsdoc_named_type_expr, JSDocTypeExpr {
291291

292292
override predicate isNumbery() {
293293
exists(string name | name = getName() |
294-
name = "number" or
295-
name = "Number" or
296-
name = "double" or
297-
name = "Double" or
298-
name = "int" or
299-
name = "integer" or
300-
name = "Integer"
294+
name = ["number", "Number", "double", "Double", "int", "integer", "Integer"]
301295
)
302296
}
303297

javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1405,14 +1405,7 @@ module DataFlow {
14051405
*/
14061406
class Incompleteness extends string {
14071407
Incompleteness() {
1408-
this = "await" or
1409-
this = "call" or
1410-
this = "eval" or
1411-
this = "global" or
1412-
this = "heap" or
1413-
this = "import" or
1414-
this = "namespace" or
1415-
this = "yield"
1408+
this = ["await", "call", "eval", "global", "heap", "import", "namespace", "yield"]
14161409
}
14171410
}
14181411

javascript/ql/lib/semmle/javascript/dataflow/InferredTypes.qll

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,7 @@ newtype TypeTag =
2929
*/
3030
class TypeofTag extends string {
3131
TypeofTag() {
32-
this = "undefined" or
33-
this = "boolean" or
34-
this = "number" or
35-
this = "string" or
36-
this = "function" or
37-
this = "object" or
38-
this = "symbol"
32+
this = ["undefined", "boolean", "number", "string", "function", "object", "symbol"]
3933
}
4034
}
4135

javascript/ql/lib/semmle/javascript/dataflow/TaintTracking.qll

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -924,13 +924,11 @@ module TaintTracking {
924924
pred = invoke.getArgument(0) and
925925
succ = invoke
926926
|
927-
name = "Error" or
928-
name = "EvalError" or
929-
name = "RangeError" or
930-
name = "ReferenceError" or
931-
name = "SyntaxError" or
932-
name = "TypeError" or
933-
name = "URIError"
927+
name =
928+
[
929+
"Error", "EvalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError",
930+
"URIError"
931+
]
934932
)
935933
}
936934
}

0 commit comments

Comments
 (0)