Skip to content

Commit 1832e93

Browse files
committed
JS: Port FormParsers test to ConfigSig
1 parent 4d7401a commit 1832e93

File tree

2 files changed

+103
-216
lines changed

2 files changed

+103
-216
lines changed

javascript/ql/test/experimental/FormParsers/RemoteFlowSource.expected

Lines changed: 94 additions & 208 deletions
Original file line numberDiff line numberDiff line change
@@ -1,212 +1,98 @@
1-
nodes
2-
| busybus.js:9:30:9:33 | file |
3-
| busybus.js:9:30:9:33 | file |
4-
| busybus.js:9:36:9:39 | info |
5-
| busybus.js:9:36:9:39 | info |
6-
| busybus.js:10:19:10:50 | { filen ... eType } |
7-
| busybus.js:10:19:10:57 | encoding |
8-
| busybus.js:10:19:10:57 | filename |
9-
| busybus.js:10:19:10:57 | mimeType |
10-
| busybus.js:10:21:10:28 | filename |
11-
| busybus.js:10:31:10:38 | encoding |
12-
| busybus.js:10:41:10:48 | mimeType |
13-
| busybus.js:10:54:10:57 | info |
14-
| busybus.js:12:18:12:25 | filename |
15-
| busybus.js:12:18:12:25 | filename |
16-
| busybus.js:12:28:12:35 | encoding |
17-
| busybus.js:12:28:12:35 | encoding |
18-
| busybus.js:12:38:12:45 | mimeType |
19-
| busybus.js:12:38:12:45 | mimeType |
20-
| busybus.js:13:23:13:23 | z |
21-
| busybus.js:13:31:13:36 | sink() |
22-
| busybus.js:13:31:13:36 | sink() |
23-
| busybus.js:15:30:15:33 | data |
24-
| busybus.js:15:30:15:33 | data |
25-
| busybus.js:16:22:16:25 | data |
26-
| busybus.js:16:22:16:25 | data |
27-
| busybus.js:22:25:22:42 | data |
28-
| busybus.js:22:32:22:42 | this.read() |
29-
| busybus.js:22:32:22:42 | this.read() |
30-
| busybus.js:23:26:23:29 | data |
31-
| busybus.js:23:26:23:29 | data |
32-
| busybus.js:27:25:27:28 | name |
33-
| busybus.js:27:25:27:28 | name |
34-
| busybus.js:27:31:27:33 | val |
35-
| busybus.js:27:31:27:33 | val |
36-
| busybus.js:27:36:27:39 | info |
37-
| busybus.js:27:36:27:39 | info |
38-
| busybus.js:28:18:28:21 | name |
39-
| busybus.js:28:18:28:21 | name |
40-
| busybus.js:28:24:28:26 | val |
41-
| busybus.js:28:24:28:26 | val |
42-
| busybus.js:28:29:28:32 | info |
43-
| busybus.js:28:29:28:32 | info |
44-
| dicer.js:12:23:12:26 | part |
45-
| dicer.js:12:23:12:26 | part |
46-
| dicer.js:13:19:13:24 | sink() |
47-
| dicer.js:13:19:13:24 | sink() |
48-
| dicer.js:14:28:14:33 | header |
49-
| dicer.js:14:28:14:33 | header |
50-
| dicer.js:16:22:16:27 | header |
51-
| dicer.js:16:22:16:30 | header[h] |
52-
| dicer.js:16:22:16:30 | header[h] |
53-
| dicer.js:19:26:19:29 | data |
54-
| dicer.js:19:26:19:29 | data |
55-
| dicer.js:20:18:20:21 | data |
56-
| dicer.js:20:18:20:21 | data |
57-
| formidable.js:7:11:7:25 | [fields, files] |
58-
| formidable.js:7:11:7:49 | fields |
59-
| formidable.js:7:11:7:49 | files |
60-
| formidable.js:7:12:7:17 | fields |
61-
| formidable.js:7:20:7:24 | files |
62-
| formidable.js:7:29:7:49 | await f ... se(req) |
63-
| formidable.js:7:35:7:49 | form.parse(req) |
64-
| formidable.js:7:35:7:49 | form.parse(req) |
65-
| formidable.js:8:10:8:15 | fields |
66-
| formidable.js:8:10:8:15 | fields |
67-
| formidable.js:8:18:8:22 | files |
68-
| formidable.js:8:18:8:22 | files |
69-
| formidable.js:9:27:9:34 | formname |
70-
| formidable.js:9:27:9:34 | formname |
71-
| formidable.js:9:37:9:40 | file |
72-
| formidable.js:9:37:9:40 | file |
73-
| formidable.js:10:14:10:21 | formname |
74-
| formidable.js:10:14:10:21 | formname |
75-
| formidable.js:10:24:10:27 | file |
76-
| formidable.js:10:24:10:27 | file |
77-
| formidable.js:12:22:12:29 | formname |
78-
| formidable.js:12:22:12:29 | formname |
79-
| formidable.js:12:32:12:35 | file |
80-
| formidable.js:12:32:12:35 | file |
81-
| formidable.js:13:14:13:21 | formname |
82-
| formidable.js:13:14:13:21 | formname |
83-
| formidable.js:13:24:13:27 | file |
84-
| formidable.js:13:24:13:27 | file |
85-
| formidable.js:15:23:15:31 | fieldName |
86-
| formidable.js:15:23:15:31 | fieldName |
87-
| formidable.js:15:34:15:43 | fieldValue |
88-
| formidable.js:15:34:15:43 | fieldValue |
89-
| formidable.js:16:14:16:22 | fieldName |
90-
| formidable.js:16:14:16:22 | fieldName |
91-
| formidable.js:16:25:16:34 | fieldValue |
92-
| formidable.js:16:25:16:34 | fieldValue |
93-
| multiparty.js:8:22:8:25 | part |
94-
| multiparty.js:8:22:8:25 | part |
95-
| multiparty.js:9:14:9:17 | part |
96-
| multiparty.js:9:14:9:17 | part |
97-
| multiparty.js:10:19:10:24 | sink() |
98-
| multiparty.js:10:19:10:24 | sink() |
99-
| multiparty.js:14:37:14:42 | fields |
100-
| multiparty.js:14:37:14:42 | fields |
101-
| multiparty.js:14:45:14:49 | files |
102-
| multiparty.js:14:45:14:49 | files |
103-
| multiparty.js:15:14:15:19 | fields |
104-
| multiparty.js:15:14:15:19 | fields |
105-
| multiparty.js:15:22:15:26 | files |
106-
| multiparty.js:15:22:15:26 | files |
1071
edges
108-
| busybus.js:9:30:9:33 | file | busybus.js:13:23:13:23 | z |
109-
| busybus.js:9:30:9:33 | file | busybus.js:13:23:13:23 | z |
110-
| busybus.js:9:36:9:39 | info | busybus.js:10:54:10:57 | info |
111-
| busybus.js:9:36:9:39 | info | busybus.js:10:54:10:57 | info |
112-
| busybus.js:10:19:10:50 | { filen ... eType } | busybus.js:10:21:10:28 | filename |
113-
| busybus.js:10:19:10:50 | { filen ... eType } | busybus.js:10:31:10:38 | encoding |
114-
| busybus.js:10:19:10:50 | { filen ... eType } | busybus.js:10:41:10:48 | mimeType |
115-
| busybus.js:10:19:10:57 | encoding | busybus.js:12:28:12:35 | encoding |
116-
| busybus.js:10:19:10:57 | encoding | busybus.js:12:28:12:35 | encoding |
117-
| busybus.js:10:19:10:57 | filename | busybus.js:12:18:12:25 | filename |
118-
| busybus.js:10:19:10:57 | filename | busybus.js:12:18:12:25 | filename |
119-
| busybus.js:10:19:10:57 | mimeType | busybus.js:12:38:12:45 | mimeType |
120-
| busybus.js:10:19:10:57 | mimeType | busybus.js:12:38:12:45 | mimeType |
121-
| busybus.js:10:21:10:28 | filename | busybus.js:10:19:10:57 | filename |
122-
| busybus.js:10:31:10:38 | encoding | busybus.js:10:19:10:57 | encoding |
123-
| busybus.js:10:41:10:48 | mimeType | busybus.js:10:19:10:57 | mimeType |
124-
| busybus.js:10:54:10:57 | info | busybus.js:10:19:10:50 | { filen ... eType } |
125-
| busybus.js:13:23:13:23 | z | busybus.js:13:31:13:36 | sink() |
126-
| busybus.js:13:23:13:23 | z | busybus.js:13:31:13:36 | sink() |
127-
| busybus.js:15:30:15:33 | data | busybus.js:16:22:16:25 | data |
128-
| busybus.js:15:30:15:33 | data | busybus.js:16:22:16:25 | data |
129-
| busybus.js:15:30:15:33 | data | busybus.js:16:22:16:25 | data |
130-
| busybus.js:15:30:15:33 | data | busybus.js:16:22:16:25 | data |
131-
| busybus.js:22:25:22:42 | data | busybus.js:23:26:23:29 | data |
132-
| busybus.js:22:25:22:42 | data | busybus.js:23:26:23:29 | data |
133-
| busybus.js:22:32:22:42 | this.read() | busybus.js:22:25:22:42 | data |
134-
| busybus.js:22:32:22:42 | this.read() | busybus.js:22:25:22:42 | data |
135-
| busybus.js:27:25:27:28 | name | busybus.js:28:18:28:21 | name |
136-
| busybus.js:27:25:27:28 | name | busybus.js:28:18:28:21 | name |
137-
| busybus.js:27:25:27:28 | name | busybus.js:28:18:28:21 | name |
138-
| busybus.js:27:25:27:28 | name | busybus.js:28:18:28:21 | name |
139-
| busybus.js:27:31:27:33 | val | busybus.js:28:24:28:26 | val |
140-
| busybus.js:27:31:27:33 | val | busybus.js:28:24:28:26 | val |
141-
| busybus.js:27:31:27:33 | val | busybus.js:28:24:28:26 | val |
142-
| busybus.js:27:31:27:33 | val | busybus.js:28:24:28:26 | val |
143-
| busybus.js:27:36:27:39 | info | busybus.js:28:29:28:32 | info |
144-
| busybus.js:27:36:27:39 | info | busybus.js:28:29:28:32 | info |
145-
| busybus.js:27:36:27:39 | info | busybus.js:28:29:28:32 | info |
146-
| busybus.js:27:36:27:39 | info | busybus.js:28:29:28:32 | info |
147-
| dicer.js:12:23:12:26 | part | dicer.js:13:19:13:24 | sink() |
148-
| dicer.js:12:23:12:26 | part | dicer.js:13:19:13:24 | sink() |
149-
| dicer.js:12:23:12:26 | part | dicer.js:13:19:13:24 | sink() |
150-
| dicer.js:12:23:12:26 | part | dicer.js:13:19:13:24 | sink() |
151-
| dicer.js:14:28:14:33 | header | dicer.js:16:22:16:27 | header |
152-
| dicer.js:14:28:14:33 | header | dicer.js:16:22:16:27 | header |
153-
| dicer.js:16:22:16:27 | header | dicer.js:16:22:16:30 | header[h] |
154-
| dicer.js:16:22:16:27 | header | dicer.js:16:22:16:30 | header[h] |
155-
| dicer.js:19:26:19:29 | data | dicer.js:20:18:20:21 | data |
156-
| dicer.js:19:26:19:29 | data | dicer.js:20:18:20:21 | data |
157-
| dicer.js:19:26:19:29 | data | dicer.js:20:18:20:21 | data |
158-
| dicer.js:19:26:19:29 | data | dicer.js:20:18:20:21 | data |
159-
| formidable.js:7:11:7:25 | [fields, files] | formidable.js:7:12:7:17 | fields |
160-
| formidable.js:7:11:7:25 | [fields, files] | formidable.js:7:20:7:24 | files |
161-
| formidable.js:7:11:7:49 | fields | formidable.js:8:10:8:15 | fields |
162-
| formidable.js:7:11:7:49 | fields | formidable.js:8:10:8:15 | fields |
163-
| formidable.js:7:11:7:49 | files | formidable.js:8:18:8:22 | files |
164-
| formidable.js:7:11:7:49 | files | formidable.js:8:18:8:22 | files |
165-
| formidable.js:7:12:7:17 | fields | formidable.js:7:11:7:49 | fields |
166-
| formidable.js:7:20:7:24 | files | formidable.js:7:11:7:49 | files |
167-
| formidable.js:7:29:7:49 | await f ... se(req) | formidable.js:7:11:7:25 | [fields, files] |
168-
| formidable.js:7:35:7:49 | form.parse(req) | formidable.js:7:29:7:49 | await f ... se(req) |
169-
| formidable.js:7:35:7:49 | form.parse(req) | formidable.js:7:29:7:49 | await f ... se(req) |
170-
| formidable.js:9:27:9:34 | formname | formidable.js:10:14:10:21 | formname |
171-
| formidable.js:9:27:9:34 | formname | formidable.js:10:14:10:21 | formname |
172-
| formidable.js:9:27:9:34 | formname | formidable.js:10:14:10:21 | formname |
173-
| formidable.js:9:27:9:34 | formname | formidable.js:10:14:10:21 | formname |
174-
| formidable.js:9:37:9:40 | file | formidable.js:10:24:10:27 | file |
175-
| formidable.js:9:37:9:40 | file | formidable.js:10:24:10:27 | file |
176-
| formidable.js:9:37:9:40 | file | formidable.js:10:24:10:27 | file |
177-
| formidable.js:9:37:9:40 | file | formidable.js:10:24:10:27 | file |
178-
| formidable.js:12:22:12:29 | formname | formidable.js:13:14:13:21 | formname |
179-
| formidable.js:12:22:12:29 | formname | formidable.js:13:14:13:21 | formname |
180-
| formidable.js:12:22:12:29 | formname | formidable.js:13:14:13:21 | formname |
181-
| formidable.js:12:22:12:29 | formname | formidable.js:13:14:13:21 | formname |
182-
| formidable.js:12:32:12:35 | file | formidable.js:13:24:13:27 | file |
183-
| formidable.js:12:32:12:35 | file | formidable.js:13:24:13:27 | file |
184-
| formidable.js:12:32:12:35 | file | formidable.js:13:24:13:27 | file |
185-
| formidable.js:12:32:12:35 | file | formidable.js:13:24:13:27 | file |
186-
| formidable.js:15:23:15:31 | fieldName | formidable.js:16:14:16:22 | fieldName |
187-
| formidable.js:15:23:15:31 | fieldName | formidable.js:16:14:16:22 | fieldName |
188-
| formidable.js:15:23:15:31 | fieldName | formidable.js:16:14:16:22 | fieldName |
189-
| formidable.js:15:23:15:31 | fieldName | formidable.js:16:14:16:22 | fieldName |
190-
| formidable.js:15:34:15:43 | fieldValue | formidable.js:16:25:16:34 | fieldValue |
191-
| formidable.js:15:34:15:43 | fieldValue | formidable.js:16:25:16:34 | fieldValue |
192-
| formidable.js:15:34:15:43 | fieldValue | formidable.js:16:25:16:34 | fieldValue |
193-
| formidable.js:15:34:15:43 | fieldValue | formidable.js:16:25:16:34 | fieldValue |
194-
| multiparty.js:8:22:8:25 | part | multiparty.js:9:14:9:17 | part |
195-
| multiparty.js:8:22:8:25 | part | multiparty.js:9:14:9:17 | part |
196-
| multiparty.js:8:22:8:25 | part | multiparty.js:9:14:9:17 | part |
197-
| multiparty.js:8:22:8:25 | part | multiparty.js:9:14:9:17 | part |
198-
| multiparty.js:8:22:8:25 | part | multiparty.js:10:19:10:24 | sink() |
199-
| multiparty.js:8:22:8:25 | part | multiparty.js:10:19:10:24 | sink() |
200-
| multiparty.js:8:22:8:25 | part | multiparty.js:10:19:10:24 | sink() |
201-
| multiparty.js:8:22:8:25 | part | multiparty.js:10:19:10:24 | sink() |
202-
| multiparty.js:14:37:14:42 | fields | multiparty.js:15:14:15:19 | fields |
203-
| multiparty.js:14:37:14:42 | fields | multiparty.js:15:14:15:19 | fields |
204-
| multiparty.js:14:37:14:42 | fields | multiparty.js:15:14:15:19 | fields |
205-
| multiparty.js:14:37:14:42 | fields | multiparty.js:15:14:15:19 | fields |
206-
| multiparty.js:14:45:14:49 | files | multiparty.js:15:22:15:26 | files |
207-
| multiparty.js:14:45:14:49 | files | multiparty.js:15:22:15:26 | files |
208-
| multiparty.js:14:45:14:49 | files | multiparty.js:15:22:15:26 | files |
209-
| multiparty.js:14:45:14:49 | files | multiparty.js:15:22:15:26 | files |
2+
| busybus.js:9:30:9:33 | file | busybus.js:13:23:13:23 | z | provenance | |
3+
| busybus.js:9:36:9:39 | info | busybus.js:10:54:10:57 | info | provenance | |
4+
| busybus.js:10:19:10:50 | { filen ... eType } | busybus.js:10:19:10:57 | encoding | provenance | |
5+
| busybus.js:10:19:10:50 | { filen ... eType } | busybus.js:10:19:10:57 | filename | provenance | |
6+
| busybus.js:10:19:10:50 | { filen ... eType } | busybus.js:10:19:10:57 | mimeType | provenance | |
7+
| busybus.js:10:19:10:57 | encoding | busybus.js:12:28:12:35 | encoding | provenance | |
8+
| busybus.js:10:19:10:57 | filename | busybus.js:12:18:12:25 | filename | provenance | |
9+
| busybus.js:10:19:10:57 | mimeType | busybus.js:12:38:12:45 | mimeType | provenance | |
10+
| busybus.js:10:54:10:57 | info | busybus.js:10:19:10:50 | { filen ... eType } | provenance | |
11+
| busybus.js:13:23:13:23 | z | busybus.js:13:31:13:36 | sink() | provenance | |
12+
| busybus.js:15:30:15:33 | data | busybus.js:16:22:16:25 | data | provenance | |
13+
| busybus.js:22:25:22:42 | data | busybus.js:23:26:23:29 | data | provenance | |
14+
| busybus.js:22:32:22:42 | this.read() | busybus.js:22:25:22:42 | data | provenance | |
15+
| busybus.js:27:25:27:28 | name | busybus.js:28:18:28:21 | name | provenance | |
16+
| busybus.js:27:31:27:33 | val | busybus.js:28:24:28:26 | val | provenance | |
17+
| busybus.js:27:36:27:39 | info | busybus.js:28:29:28:32 | info | provenance | |
18+
| dicer.js:12:23:12:26 | part | dicer.js:13:19:13:24 | sink() | provenance | |
19+
| dicer.js:14:28:14:33 | header | dicer.js:16:22:16:27 | header | provenance | |
20+
| dicer.js:16:22:16:27 | header | dicer.js:16:22:16:30 | header[h] | provenance | |
21+
| dicer.js:19:26:19:29 | data | dicer.js:20:18:20:21 | data | provenance | |
22+
| formidable.js:7:11:7:25 | [fields, files] | formidable.js:7:11:7:49 | fields | provenance | |
23+
| formidable.js:7:11:7:25 | [fields, files] | formidable.js:7:11:7:49 | files | provenance | |
24+
| formidable.js:7:11:7:49 | fields | formidable.js:8:10:8:15 | fields | provenance | |
25+
| formidable.js:7:11:7:49 | files | formidable.js:8:18:8:22 | files | provenance | |
26+
| formidable.js:7:29:7:49 | await f ... se(req) | formidable.js:7:11:7:25 | [fields, files] | provenance | |
27+
| formidable.js:7:35:7:49 | form.parse(req) | formidable.js:7:29:7:49 | await f ... se(req) | provenance | |
28+
| formidable.js:9:27:9:34 | formname | formidable.js:10:14:10:21 | formname | provenance | |
29+
| formidable.js:9:37:9:40 | file | formidable.js:10:24:10:27 | file | provenance | |
30+
| formidable.js:12:22:12:29 | formname | formidable.js:13:14:13:21 | formname | provenance | |
31+
| formidable.js:12:32:12:35 | file | formidable.js:13:24:13:27 | file | provenance | |
32+
| formidable.js:15:23:15:31 | fieldName | formidable.js:16:14:16:22 | fieldName | provenance | |
33+
| formidable.js:15:34:15:43 | fieldValue | formidable.js:16:25:16:34 | fieldValue | provenance | |
34+
| multiparty.js:8:22:8:25 | part | multiparty.js:9:14:9:17 | part | provenance | |
35+
| multiparty.js:8:22:8:25 | part | multiparty.js:10:19:10:24 | sink() | provenance | |
36+
| multiparty.js:14:37:14:42 | fields | multiparty.js:15:14:15:19 | fields | provenance | |
37+
| multiparty.js:14:45:14:49 | files | multiparty.js:15:22:15:26 | files | provenance | |
38+
nodes
39+
| busybus.js:9:30:9:33 | file | semmle.label | file |
40+
| busybus.js:9:36:9:39 | info | semmle.label | info |
41+
| busybus.js:10:19:10:50 | { filen ... eType } | semmle.label | { filen ... eType } |
42+
| busybus.js:10:19:10:57 | encoding | semmle.label | encoding |
43+
| busybus.js:10:19:10:57 | filename | semmle.label | filename |
44+
| busybus.js:10:19:10:57 | mimeType | semmle.label | mimeType |
45+
| busybus.js:10:54:10:57 | info | semmle.label | info |
46+
| busybus.js:12:18:12:25 | filename | semmle.label | filename |
47+
| busybus.js:12:28:12:35 | encoding | semmle.label | encoding |
48+
| busybus.js:12:38:12:45 | mimeType | semmle.label | mimeType |
49+
| busybus.js:13:23:13:23 | z | semmle.label | z |
50+
| busybus.js:13:31:13:36 | sink() | semmle.label | sink() |
51+
| busybus.js:15:30:15:33 | data | semmle.label | data |
52+
| busybus.js:16:22:16:25 | data | semmle.label | data |
53+
| busybus.js:22:25:22:42 | data | semmle.label | data |
54+
| busybus.js:22:32:22:42 | this.read() | semmle.label | this.read() |
55+
| busybus.js:23:26:23:29 | data | semmle.label | data |
56+
| busybus.js:27:25:27:28 | name | semmle.label | name |
57+
| busybus.js:27:31:27:33 | val | semmle.label | val |
58+
| busybus.js:27:36:27:39 | info | semmle.label | info |
59+
| busybus.js:28:18:28:21 | name | semmle.label | name |
60+
| busybus.js:28:24:28:26 | val | semmle.label | val |
61+
| busybus.js:28:29:28:32 | info | semmle.label | info |
62+
| dicer.js:12:23:12:26 | part | semmle.label | part |
63+
| dicer.js:13:19:13:24 | sink() | semmle.label | sink() |
64+
| dicer.js:14:28:14:33 | header | semmle.label | header |
65+
| dicer.js:16:22:16:27 | header | semmle.label | header |
66+
| dicer.js:16:22:16:30 | header[h] | semmle.label | header[h] |
67+
| dicer.js:19:26:19:29 | data | semmle.label | data |
68+
| dicer.js:20:18:20:21 | data | semmle.label | data |
69+
| formidable.js:7:11:7:25 | [fields, files] | semmle.label | [fields, files] |
70+
| formidable.js:7:11:7:49 | fields | semmle.label | fields |
71+
| formidable.js:7:11:7:49 | files | semmle.label | files |
72+
| formidable.js:7:29:7:49 | await f ... se(req) | semmle.label | await f ... se(req) |
73+
| formidable.js:7:35:7:49 | form.parse(req) | semmle.label | form.parse(req) |
74+
| formidable.js:8:10:8:15 | fields | semmle.label | fields |
75+
| formidable.js:8:18:8:22 | files | semmle.label | files |
76+
| formidable.js:9:27:9:34 | formname | semmle.label | formname |
77+
| formidable.js:9:37:9:40 | file | semmle.label | file |
78+
| formidable.js:10:14:10:21 | formname | semmle.label | formname |
79+
| formidable.js:10:24:10:27 | file | semmle.label | file |
80+
| formidable.js:12:22:12:29 | formname | semmle.label | formname |
81+
| formidable.js:12:32:12:35 | file | semmle.label | file |
82+
| formidable.js:13:14:13:21 | formname | semmle.label | formname |
83+
| formidable.js:13:24:13:27 | file | semmle.label | file |
84+
| formidable.js:15:23:15:31 | fieldName | semmle.label | fieldName |
85+
| formidable.js:15:34:15:43 | fieldValue | semmle.label | fieldValue |
86+
| formidable.js:16:14:16:22 | fieldName | semmle.label | fieldName |
87+
| formidable.js:16:25:16:34 | fieldValue | semmle.label | fieldValue |
88+
| multiparty.js:8:22:8:25 | part | semmle.label | part |
89+
| multiparty.js:9:14:9:17 | part | semmle.label | part |
90+
| multiparty.js:10:19:10:24 | sink() | semmle.label | sink() |
91+
| multiparty.js:14:37:14:42 | fields | semmle.label | fields |
92+
| multiparty.js:14:45:14:49 | files | semmle.label | files |
93+
| multiparty.js:15:14:15:19 | fields | semmle.label | fields |
94+
| multiparty.js:15:22:15:26 | files | semmle.label | files |
95+
subpaths
21096
#select
21197
| busybus.js:12:18:12:25 | filename | busybus.js:9:36:9:39 | info | busybus.js:12:18:12:25 | filename | This entity depends on a $@. | busybus.js:9:36:9:39 | info | user-provided value |
21298
| busybus.js:12:28:12:35 | encoding | busybus.js:9:36:9:39 | info | busybus.js:12:28:12:35 | encoding | This entity depends on a $@. | busybus.js:9:36:9:39 | info | user-provided value |

javascript/ql/test/experimental/FormParsers/RemoteFlowSource.ql

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,25 @@
1111
*/
1212

1313
import javascript
14-
import DataFlow::PathGraph
1514
import experimental.semmle.javascript.FormParsers
1615

1716
/**
1817
* A taint-tracking configuration for test
1918
*/
20-
class Configuration extends TaintTracking::Configuration {
21-
Configuration() { this = "RemoteFlowSourcesOUserForm" }
19+
module TestConfig implements DataFlow::ConfigSig {
20+
predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
2221

23-
override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
24-
25-
override predicate isSink(DataFlow::Node sink) {
22+
predicate isSink(DataFlow::Node sink) {
2623
sink = API::moduleImport("sink").getAParameter().asSink() or
2724
sink = API::moduleImport("sink").getReturn().asSource()
2825
}
2926
}
3027

31-
from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink
32-
where cfg.hasFlowPath(source, sink)
28+
module TestFlow = TaintTracking::Global<TestConfig>;
29+
30+
import TestFlow::PathGraph
31+
32+
from TestFlow::PathNode source, TestFlow::PathNode sink
33+
where TestFlow::flowPath(source, sink)
3334
select sink.getNode(), source, sink, "This entity depends on a $@.", source.getNode(),
3435
"user-provided value"

0 commit comments

Comments
 (0)