Skip to content

Commit c95ab03

Browse files
esbenaStephan Brandauer
authored andcommitted
rename new features
1 parent 6533260 commit c95ab03

3 files changed

Lines changed: 67 additions & 70 deletions

File tree

javascript/ql/experimental/adaptivethreatmodeling/lib/experimental/adaptivethreatmodeling/EndpointFeatures.qll

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -232,10 +232,10 @@ private newtype TEndpointFeature =
232232
TCalleeAccessPath() or
233233
TCalleeAccessPathWithStructuralInfo() or
234234
TEnclosingFunctionBody() or
235-
TCalleeAccessPathSimpleFromArgumentTraversal() or
236-
TParameterAccessPathSimpleFromArgumentTraversal() or
237-
TPropertyAccessPathSimpleFromArgumentTraversal() or
238-
TArgumentIndexFromArgumentTraversal()
235+
TCallee_AccessPath() or
236+
TInput_ArgumentIndexAndAccessPathFromCallee() or
237+
TInput_AccessPathFromCallee() or
238+
TInput_ArgumentIndex()
239239

240240
/**
241241
* An implementation of an endpoint feature: produces feature names and values for used in ML.
@@ -534,9 +534,8 @@ string getPropertyNameOrUnknown(DataFlow::PropRef ref) {
534534
*
535535
* This feature is intended as a superior version of the many `Callee*` features.
536536
*/
537-
class CalleeAccessPathSimpleFromArgumentTraversal extends EndpointFeature,
538-
TCalleeAccessPathSimpleFromArgumentTraversal {
539-
override string getName() { result = "calleeAccessPathSimpleFromArgumentTraversal" }
537+
class Callee_AccessPath extends EndpointFeature, TCallee_AccessPath {
538+
override string getName() { result = "Callee_AccessPath" }
540539

541540
override string getValue(DataFlow::Node endpoint) {
542541
exists(DataFlow::InvokeNode invk |
@@ -562,9 +561,9 @@ class CalleeAccessPathSimpleFromArgumentTraversal extends EndpointFeature,
562561
*
563562
* This feature is intended as a superior version of the `ArgumentIndexFeature`.
564563
*/
565-
class ParameterAccessPathSimpleFromArgumentTraversal extends EndpointFeature,
566-
TParameterAccessPathSimpleFromArgumentTraversal {
567-
override string getName() { result = "ParameterAccessPathSimpleFromArgumentTraversal" }
564+
class Input_ArgumentIndexAndAccessPathFromCallee extends EndpointFeature,
565+
TInput_ArgumentIndexAndAccessPathFromCallee {
566+
override string getName() { result = "Input_ArgumentIndexAndAccessPathFromCallee" }
568567

569568
override string getValue(DataFlow::Node endpoint) {
570569
exists(DataFlow::InvokeNode invk |
@@ -580,15 +579,14 @@ class ParameterAccessPathSimpleFromArgumentTraversal extends EndpointFeature,
580579
}
581580

582581
/**
583-
* The feature for how a callee can refer to a the endpoint that is "contained" in a some argument to a call
582+
* The feature for how a callee can refer to a the endpoint that is "contained" in some argument to a call
584583
*
585584
* "Containment" is syntactic, and currently means that the endpoint is an argument to the call, or that the endpoint is a (nested) property value of an argument.
586585
*
587586
* This feature is intended as a superior version of the `ArgumentIndexFeature`.
588587
*/
589-
class PropertyAccessPathSimpleFromArgumentTraversal extends EndpointFeature,
590-
TPropertyAccessPathSimpleFromArgumentTraversal {
591-
override string getName() { result = "PropertyAccessPathSimpleFromArgumentTraversal" }
588+
class Input_AccessPathFromCallee extends EndpointFeature, TInput_AccessPathFromCallee {
589+
override string getName() { result = "Input_AccessPathFromCallee" }
592590

593591
private string getValueMaybe(DataFlow::Node endpoint) {
594592
exists(DataFlow::InvokeNode invk |
@@ -613,9 +611,8 @@ class PropertyAccessPathSimpleFromArgumentTraversal extends EndpointFeature,
613611
*
614612
* This feature is intended as a superior version of the `ArgumentIndexFeature`.
615613
*/
616-
class ArgumentIndexFromArgumentTraversal extends EndpointFeature,
617-
TArgumentIndexFromArgumentTraversal {
618-
override string getName() { result = "ArgumentIndexFromArgumentTraversal" }
614+
class Input_ArgumentIndex extends EndpointFeature, TInput_ArgumentIndex {
615+
override string getName() { result = "Input_ArgumentIndex" }
619616

620617
override string getValue(DataFlow::Node endpoint) {
621618
exists(DataFlow::InvokeNode invk, DataFlow::Node arg, int i | arg = invk.getArgument(i) |

javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/debug/CompareFeatures.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ from
1313
DataFlow::Node endpoint, EndpointFeature feature1, EndpointFeature feature2, string featureValue1,
1414
string featureValue2
1515
where
16-
feature1 instanceof ArgumentIndexFromArgumentTraversal and
16+
feature1 instanceof Input_ArgumentIndex and
1717
feature2 instanceof ArgumentIndex and
1818
featureValue1 = getValueOrNone(feature1, endpoint) and
1919
featureValue2 = getValueOrNone(feature2, endpoint) and
Lines changed: 52 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,93 @@
1-
| test.html:2:61:2:68 | endpoint | ArgumentIndexFromArgumentTraversal | 0 |
2-
| test.html:2:61:2:68 | endpoint | ParameterAccessPathSimpleFromArgumentTraversal | 0 |
3-
| test.html:2:61:2:68 | endpoint | PropertyAccessPathSimpleFromArgumentTraversal | |
1+
| test.html:2:61:2:68 | endpoint | Callee_AccessPath | $event.target.files.item |
2+
| test.html:2:61:2:68 | endpoint | Input_AccessPathFromCallee | |
3+
| test.html:2:61:2:68 | endpoint | Input_ArgumentIndex | 0 |
4+
| test.html:2:61:2:68 | endpoint | Input_ArgumentIndexAndAccessPathFromCallee | 0 |
45
| test.html:2:61:2:68 | endpoint | argumentIndex | 0 |
56
| test.html:2:61:2:68 | endpoint | calleeAccessPath | |
6-
| test.html:2:61:2:68 | endpoint | calleeAccessPathSimpleFromArgumentTraversal | $event.target.files.item |
77
| test.html:2:61:2:68 | endpoint | calleeAccessPathWithStructuralInfo | |
88
| test.html:2:61:2:68 | endpoint | calleeName | item |
9-
| test.js:2:7:2:14 | endpoint | ArgumentIndexFromArgumentTraversal | 0 |
10-
| test.js:2:7:2:14 | endpoint | ParameterAccessPathSimpleFromArgumentTraversal | 0 |
11-
| test.js:2:7:2:14 | endpoint | PropertyAccessPathSimpleFromArgumentTraversal | |
9+
| test.js:2:7:2:14 | endpoint | Callee_AccessPath | f |
10+
| test.js:2:7:2:14 | endpoint | Input_AccessPathFromCallee | |
11+
| test.js:2:7:2:14 | endpoint | Input_ArgumentIndex | 0 |
12+
| test.js:2:7:2:14 | endpoint | Input_ArgumentIndexAndAccessPathFromCallee | 0 |
1213
| test.js:2:7:2:14 | endpoint | argumentIndex | 0 |
1314
| test.js:2:7:2:14 | endpoint | calleeAccessPath | |
14-
| test.js:2:7:2:14 | endpoint | calleeAccessPathSimpleFromArgumentTraversal | f |
1515
| test.js:2:7:2:14 | endpoint | calleeAccessPathWithStructuralInfo | |
1616
| test.js:2:7:2:14 | endpoint | calleeName | f |
17-
| test.js:3:11:3:18 | endpoint | ArgumentIndexFromArgumentTraversal | 0 |
18-
| test.js:3:11:3:18 | endpoint | ParameterAccessPathSimpleFromArgumentTraversal | 0.p |
19-
| test.js:3:11:3:18 | endpoint | PropertyAccessPathSimpleFromArgumentTraversal | 0.p |
17+
| test.js:3:11:3:18 | endpoint | Callee_AccessPath | f |
18+
| test.js:3:11:3:18 | endpoint | Input_AccessPathFromCallee | 0.p |
19+
| test.js:3:11:3:18 | endpoint | Input_ArgumentIndex | 0 |
20+
| test.js:3:11:3:18 | endpoint | Input_ArgumentIndexAndAccessPathFromCallee | 0.p |
2021
| test.js:3:11:3:18 | endpoint | calleeAccessPath | |
21-
| test.js:3:11:3:18 | endpoint | calleeAccessPathSimpleFromArgumentTraversal | f |
2222
| test.js:3:11:3:18 | endpoint | calleeAccessPathWithStructuralInfo | |
23-
| test.js:4:15:4:22 | endpoint | ArgumentIndexFromArgumentTraversal | 0 |
24-
| test.js:4:15:4:22 | endpoint | ParameterAccessPathSimpleFromArgumentTraversal | 0.p.q |
25-
| test.js:4:15:4:22 | endpoint | PropertyAccessPathSimpleFromArgumentTraversal | 0.p.q |
23+
| test.js:4:15:4:22 | endpoint | Callee_AccessPath | f |
24+
| test.js:4:15:4:22 | endpoint | Input_AccessPathFromCallee | 0.p.q |
25+
| test.js:4:15:4:22 | endpoint | Input_ArgumentIndex | 0 |
26+
| test.js:4:15:4:22 | endpoint | Input_ArgumentIndexAndAccessPathFromCallee | 0.p.q |
2627
| test.js:4:15:4:22 | endpoint | calleeAccessPath | |
27-
| test.js:4:15:4:22 | endpoint | calleeAccessPathSimpleFromArgumentTraversal | f |
2828
| test.js:4:15:4:22 | endpoint | calleeAccessPathWithStructuralInfo | |
29-
| test.js:5:9:5:16 | endpoint | ArgumentIndexFromArgumentTraversal | 0 |
30-
| test.js:5:9:5:16 | endpoint | ParameterAccessPathSimpleFromArgumentTraversal | 0 |
31-
| test.js:5:9:5:16 | endpoint | PropertyAccessPathSimpleFromArgumentTraversal | |
29+
| test.js:5:9:5:16 | endpoint | Callee_AccessPath | o.m |
30+
| test.js:5:9:5:16 | endpoint | Input_AccessPathFromCallee | |
31+
| test.js:5:9:5:16 | endpoint | Input_ArgumentIndex | 0 |
32+
| test.js:5:9:5:16 | endpoint | Input_ArgumentIndexAndAccessPathFromCallee | 0 |
3233
| test.js:5:9:5:16 | endpoint | argumentIndex | 0 |
3334
| test.js:5:9:5:16 | endpoint | calleeAccessPath | |
34-
| test.js:5:9:5:16 | endpoint | calleeAccessPathSimpleFromArgumentTraversal | o.m |
3535
| test.js:5:9:5:16 | endpoint | calleeAccessPathWithStructuralInfo | |
3636
| test.js:5:9:5:16 | endpoint | calleeName | m |
3737
| test.js:5:9:5:16 | endpoint | receiverName | o |
38-
| test.js:6:13:6:20 | endpoint | ArgumentIndexFromArgumentTraversal | 0 |
39-
| test.js:6:13:6:20 | endpoint | ParameterAccessPathSimpleFromArgumentTraversal | 0.p |
40-
| test.js:6:13:6:20 | endpoint | PropertyAccessPathSimpleFromArgumentTraversal | 0.p |
38+
| test.js:6:13:6:20 | endpoint | Callee_AccessPath | o.m |
39+
| test.js:6:13:6:20 | endpoint | Input_AccessPathFromCallee | 0.p |
40+
| test.js:6:13:6:20 | endpoint | Input_ArgumentIndex | 0 |
41+
| test.js:6:13:6:20 | endpoint | Input_ArgumentIndexAndAccessPathFromCallee | 0.p |
4142
| test.js:6:13:6:20 | endpoint | calleeAccessPath | |
42-
| test.js:6:13:6:20 | endpoint | calleeAccessPathSimpleFromArgumentTraversal | o.m |
4343
| test.js:6:13:6:20 | endpoint | calleeAccessPathWithStructuralInfo | |
44-
| test.js:7:17:7:24 | endpoint | ArgumentIndexFromArgumentTraversal | 0 |
45-
| test.js:7:17:7:24 | endpoint | ParameterAccessPathSimpleFromArgumentTraversal | 0.p.q |
46-
| test.js:7:17:7:24 | endpoint | PropertyAccessPathSimpleFromArgumentTraversal | 0.p.q |
44+
| test.js:7:17:7:24 | endpoint | Callee_AccessPath | o.m |
45+
| test.js:7:17:7:24 | endpoint | Input_AccessPathFromCallee | 0.p.q |
46+
| test.js:7:17:7:24 | endpoint | Input_ArgumentIndex | 0 |
47+
| test.js:7:17:7:24 | endpoint | Input_ArgumentIndexAndAccessPathFromCallee | 0.p.q |
4748
| test.js:7:17:7:24 | endpoint | calleeAccessPath | |
48-
| test.js:7:17:7:24 | endpoint | calleeAccessPathSimpleFromArgumentTraversal | o.m |
4949
| test.js:7:17:7:24 | endpoint | calleeAccessPathWithStructuralInfo | |
50-
| test.js:8:11:8:18 | endpoint | ArgumentIndexFromArgumentTraversal | 0 |
51-
| test.js:8:11:8:18 | endpoint | ParameterAccessPathSimpleFromArgumentTraversal | ? |
52-
| test.js:8:11:8:18 | endpoint | PropertyAccessPathSimpleFromArgumentTraversal | |
50+
| test.js:8:11:8:18 | endpoint | Callee_AccessPath | F |
51+
| test.js:8:11:8:18 | endpoint | Input_AccessPathFromCallee | |
52+
| test.js:8:11:8:18 | endpoint | Input_ArgumentIndex | 0 |
53+
| test.js:8:11:8:18 | endpoint | Input_ArgumentIndexAndAccessPathFromCallee | ? |
5354
| test.js:8:11:8:18 | endpoint | calleeAccessPath | |
54-
| test.js:8:11:8:18 | endpoint | calleeAccessPathSimpleFromArgumentTraversal | F |
5555
| test.js:8:11:8:18 | endpoint | calleeAccessPathWithStructuralInfo | |
56-
| test.js:9:17:9:24 | endpoint | ArgumentIndexFromArgumentTraversal | 0 |
57-
| test.js:9:17:9:24 | endpoint | ParameterAccessPathSimpleFromArgumentTraversal | 0 |
58-
| test.js:9:17:9:24 | endpoint | PropertyAccessPathSimpleFromArgumentTraversal | |
56+
| test.js:9:17:9:24 | endpoint | Callee_AccessPath | o.m().m().m |
57+
| test.js:9:17:9:24 | endpoint | Input_AccessPathFromCallee | |
58+
| test.js:9:17:9:24 | endpoint | Input_ArgumentIndex | 0 |
59+
| test.js:9:17:9:24 | endpoint | Input_ArgumentIndexAndAccessPathFromCallee | 0 |
5960
| test.js:9:17:9:24 | endpoint | argumentIndex | 0 |
6061
| test.js:9:17:9:24 | endpoint | calleeAccessPath | |
61-
| test.js:9:17:9:24 | endpoint | calleeAccessPathSimpleFromArgumentTraversal | o.m().m().m |
6262
| test.js:9:17:9:24 | endpoint | calleeAccessPathWithStructuralInfo | |
6363
| test.js:9:17:9:24 | endpoint | calleeName | m |
64-
| test.js:10:9:10:16 | endpoint | ArgumentIndexFromArgumentTraversal | 0 |
65-
| test.js:10:9:10:16 | endpoint | ParameterAccessPathSimpleFromArgumentTraversal | 0 |
66-
| test.js:10:9:10:16 | endpoint | PropertyAccessPathSimpleFromArgumentTraversal | |
64+
| test.js:10:9:10:16 | endpoint | Callee_AccessPath | f() |
65+
| test.js:10:9:10:16 | endpoint | Input_AccessPathFromCallee | |
66+
| test.js:10:9:10:16 | endpoint | Input_ArgumentIndex | 0 |
67+
| test.js:10:9:10:16 | endpoint | Input_ArgumentIndexAndAccessPathFromCallee | 0 |
6768
| test.js:10:9:10:16 | endpoint | argumentIndex | 0 |
6869
| test.js:10:9:10:16 | endpoint | calleeAccessPath | |
69-
| test.js:10:9:10:16 | endpoint | calleeAccessPathSimpleFromArgumentTraversal | f() |
7070
| test.js:10:9:10:16 | endpoint | calleeAccessPathWithStructuralInfo | |
71-
| test.js:11:12:11:19 | endpoint | ArgumentIndexFromArgumentTraversal | 0 |
72-
| test.js:11:12:11:19 | endpoint | ParameterAccessPathSimpleFromArgumentTraversal | 0 |
73-
| test.js:11:12:11:19 | endpoint | PropertyAccessPathSimpleFromArgumentTraversal | |
71+
| test.js:11:12:11:19 | endpoint | Callee_AccessPath | o.?.m |
72+
| test.js:11:12:11:19 | endpoint | Input_AccessPathFromCallee | |
73+
| test.js:11:12:11:19 | endpoint | Input_ArgumentIndex | 0 |
74+
| test.js:11:12:11:19 | endpoint | Input_ArgumentIndexAndAccessPathFromCallee | 0 |
7475
| test.js:11:12:11:19 | endpoint | argumentIndex | 0 |
7576
| test.js:11:12:11:19 | endpoint | calleeAccessPath | |
76-
| test.js:11:12:11:19 | endpoint | calleeAccessPathSimpleFromArgumentTraversal | o.?.m |
7777
| test.js:11:12:11:19 | endpoint | calleeAccessPathWithStructuralInfo | |
7878
| test.js:11:12:11:19 | endpoint | calleeName | m |
79-
| test.js:12:16:12:23 | endpoint | ArgumentIndexFromArgumentTraversal | 0 |
80-
| test.js:12:16:12:23 | endpoint | ParameterAccessPathSimpleFromArgumentTraversal | 0 |
81-
| test.js:12:16:12:23 | endpoint | PropertyAccessPathSimpleFromArgumentTraversal | |
79+
| test.js:12:16:12:23 | endpoint | Callee_AccessPath | o.m.?.p.m |
80+
| test.js:12:16:12:23 | endpoint | Input_AccessPathFromCallee | |
81+
| test.js:12:16:12:23 | endpoint | Input_ArgumentIndex | 0 |
82+
| test.js:12:16:12:23 | endpoint | Input_ArgumentIndexAndAccessPathFromCallee | 0 |
8283
| test.js:12:16:12:23 | endpoint | argumentIndex | 0 |
8384
| test.js:12:16:12:23 | endpoint | calleeAccessPath | |
84-
| test.js:12:16:12:23 | endpoint | calleeAccessPathSimpleFromArgumentTraversal | o.m.?.p.m |
8585
| test.js:12:16:12:23 | endpoint | calleeAccessPathWithStructuralInfo | |
8686
| test.js:12:16:12:23 | endpoint | calleeName | m |
87-
| test.js:13:15:13:22 | endpoint | ArgumentIndexFromArgumentTraversal | 0 |
88-
| test.js:13:15:13:22 | endpoint | ParameterAccessPathSimpleFromArgumentTraversal | 0 |
89-
| test.js:13:15:13:22 | endpoint | PropertyAccessPathSimpleFromArgumentTraversal | |
87+
| test.js:13:15:13:22 | endpoint | Callee_AccessPath | (await p) |
88+
| test.js:13:15:13:22 | endpoint | Input_AccessPathFromCallee | |
89+
| test.js:13:15:13:22 | endpoint | Input_ArgumentIndex | 0 |
90+
| test.js:13:15:13:22 | endpoint | Input_ArgumentIndexAndAccessPathFromCallee | 0 |
9091
| test.js:13:15:13:22 | endpoint | argumentIndex | 0 |
9192
| test.js:13:15:13:22 | endpoint | calleeAccessPath | |
92-
| test.js:13:15:13:22 | endpoint | calleeAccessPathSimpleFromArgumentTraversal | (await p) |
9393
| test.js:13:15:13:22 | endpoint | calleeAccessPathWithStructuralInfo | |

0 commit comments

Comments
 (0)