Skip to content

Commit 8b91d50

Browse files
committed
C++: Model find.
1 parent d550741 commit 8b91d50

File tree

6 files changed

+122
-26
lines changed

6 files changed

+122
-26
lines changed

cpp/ql/src/semmle/code/cpp/models/implementations/StdMap.qll

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,17 @@ class StdMapAt extends TaintFunction {
7373
output.isQualifierObject()
7474
}
7575
}
76+
77+
/**
78+
* The standard map `find` function.
79+
*/
80+
class StdMapFind extends TaintFunction {
81+
StdMapFind() {
82+
this.hasQualifiedName("std", ["map", "unordered_map"], "find")
83+
}
84+
85+
override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) {
86+
input.isQualifierObject() and
87+
output.isReturnValue()
88+
}
89+
}

cpp/ql/test/library-tests/dataflow/taint-tests/localTaint.expected

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,10 +695,12 @@
695695
| map.cpp:113:7:113:8 | m4 | map.cpp:113:7:113:8 | call to map | |
696696
| map.cpp:114:7:114:8 | m5 | map.cpp:114:7:114:8 | call to map | |
697697
| map.cpp:115:7:115:8 | m6 | map.cpp:115:7:115:8 | call to map | |
698+
| map.cpp:116:7:116:8 | m1 | map.cpp:116:10:116:13 | call to find | TAINT |
698699
| map.cpp:116:7:116:8 | ref arg m1 | map.cpp:122:7:122:8 | m1 | |
699700
| map.cpp:116:7:116:8 | ref arg m1 | map.cpp:143:12:143:13 | m1 | |
700701
| map.cpp:116:7:116:8 | ref arg m1 | map.cpp:143:30:143:31 | m1 | |
701702
| map.cpp:116:7:116:8 | ref arg m1 | map.cpp:249:1:249:1 | m1 | |
703+
| map.cpp:117:7:117:8 | m2 | map.cpp:117:10:117:13 | call to find | TAINT |
702704
| map.cpp:117:7:117:8 | ref arg m2 | map.cpp:123:7:123:8 | m2 | |
703705
| map.cpp:117:7:117:8 | ref arg m2 | map.cpp:130:30:130:31 | m2 | |
704706
| map.cpp:117:7:117:8 | ref arg m2 | map.cpp:131:32:131:33 | m2 | |
@@ -712,19 +714,25 @@
712714
| map.cpp:117:7:117:8 | ref arg m2 | map.cpp:183:7:183:8 | m2 | |
713715
| map.cpp:117:7:117:8 | ref arg m2 | map.cpp:184:7:184:8 | m2 | |
714716
| map.cpp:117:7:117:8 | ref arg m2 | map.cpp:249:1:249:1 | m2 | |
717+
| map.cpp:118:7:118:8 | m3 | map.cpp:118:10:118:13 | call to find | TAINT |
715718
| map.cpp:118:7:118:8 | ref arg m3 | map.cpp:124:7:124:8 | m3 | |
716719
| map.cpp:118:7:118:8 | ref arg m3 | map.cpp:155:12:155:13 | m3 | |
717720
| map.cpp:118:7:118:8 | ref arg m3 | map.cpp:155:30:155:31 | m3 | |
718721
| map.cpp:118:7:118:8 | ref arg m3 | map.cpp:249:1:249:1 | m3 | |
722+
| map.cpp:119:7:119:8 | m4 | map.cpp:119:10:119:13 | call to find | TAINT |
719723
| map.cpp:119:7:119:8 | ref arg m4 | map.cpp:125:7:125:8 | m4 | |
720724
| map.cpp:119:7:119:8 | ref arg m4 | map.cpp:249:1:249:1 | m4 | |
725+
| map.cpp:120:7:120:8 | m5 | map.cpp:120:10:120:13 | call to find | TAINT |
721726
| map.cpp:120:7:120:8 | ref arg m5 | map.cpp:126:7:126:8 | m5 | |
722727
| map.cpp:120:7:120:8 | ref arg m5 | map.cpp:249:1:249:1 | m5 | |
728+
| map.cpp:121:7:121:8 | m6 | map.cpp:121:10:121:13 | call to find | TAINT |
723729
| map.cpp:121:7:121:8 | ref arg m6 | map.cpp:127:7:127:8 | m6 | |
724730
| map.cpp:121:7:121:8 | ref arg m6 | map.cpp:249:1:249:1 | m6 | |
731+
| map.cpp:122:7:122:8 | m1 | map.cpp:122:10:122:13 | call to find | TAINT |
725732
| map.cpp:122:7:122:8 | ref arg m1 | map.cpp:143:12:143:13 | m1 | |
726733
| map.cpp:122:7:122:8 | ref arg m1 | map.cpp:143:30:143:31 | m1 | |
727734
| map.cpp:122:7:122:8 | ref arg m1 | map.cpp:249:1:249:1 | m1 | |
735+
| map.cpp:123:7:123:8 | m2 | map.cpp:123:10:123:13 | call to find | TAINT |
728736
| map.cpp:123:7:123:8 | ref arg m2 | map.cpp:130:30:130:31 | m2 | |
729737
| map.cpp:123:7:123:8 | ref arg m2 | map.cpp:131:32:131:33 | m2 | |
730738
| map.cpp:123:7:123:8 | ref arg m2 | map.cpp:133:7:133:8 | m2 | |
@@ -737,11 +745,15 @@
737745
| map.cpp:123:7:123:8 | ref arg m2 | map.cpp:183:7:183:8 | m2 | |
738746
| map.cpp:123:7:123:8 | ref arg m2 | map.cpp:184:7:184:8 | m2 | |
739747
| map.cpp:123:7:123:8 | ref arg m2 | map.cpp:249:1:249:1 | m2 | |
748+
| map.cpp:124:7:124:8 | m3 | map.cpp:124:10:124:13 | call to find | TAINT |
740749
| map.cpp:124:7:124:8 | ref arg m3 | map.cpp:155:12:155:13 | m3 | |
741750
| map.cpp:124:7:124:8 | ref arg m3 | map.cpp:155:30:155:31 | m3 | |
742751
| map.cpp:124:7:124:8 | ref arg m3 | map.cpp:249:1:249:1 | m3 | |
752+
| map.cpp:125:7:125:8 | m4 | map.cpp:125:10:125:13 | call to find | TAINT |
743753
| map.cpp:125:7:125:8 | ref arg m4 | map.cpp:249:1:249:1 | m4 | |
754+
| map.cpp:126:7:126:8 | m5 | map.cpp:126:10:126:13 | call to find | TAINT |
744755
| map.cpp:126:7:126:8 | ref arg m5 | map.cpp:249:1:249:1 | m5 | |
756+
| map.cpp:127:7:127:8 | m6 | map.cpp:127:10:127:13 | call to find | TAINT |
745757
| map.cpp:127:7:127:8 | ref arg m6 | map.cpp:249:1:249:1 | m6 | |
746758
| map.cpp:130:30:130:31 | m2 | map.cpp:130:30:130:32 | call to map | |
747759
| map.cpp:130:30:130:32 | call to map | map.cpp:134:7:134:8 | m7 | |
@@ -763,8 +775,11 @@
763775
| map.cpp:134:7:134:8 | m7 | map.cpp:134:7:134:8 | call to map | |
764776
| map.cpp:135:7:135:8 | m8 | map.cpp:135:7:135:8 | call to map | |
765777
| map.cpp:136:7:136:8 | m9 | map.cpp:136:7:136:8 | call to map | |
778+
| map.cpp:137:7:137:8 | m7 | map.cpp:137:10:137:13 | call to find | TAINT |
766779
| map.cpp:137:7:137:8 | ref arg m7 | map.cpp:249:1:249:1 | m7 | |
780+
| map.cpp:138:7:138:8 | m8 | map.cpp:138:10:138:13 | call to find | TAINT |
767781
| map.cpp:138:7:138:8 | ref arg m8 | map.cpp:249:1:249:1 | m8 | |
782+
| map.cpp:139:7:139:8 | m9 | map.cpp:139:10:139:13 | call to find | TAINT |
768783
| map.cpp:139:7:139:8 | ref arg m9 | map.cpp:249:1:249:1 | m9 | |
769784
| map.cpp:143:12:143:13 | m1 | map.cpp:143:15:143:19 | call to begin | TAINT |
770785
| map.cpp:143:12:143:13 | ref arg m1 | map.cpp:143:30:143:31 | m1 | |
@@ -1338,10 +1353,12 @@
13381353
| map.cpp:265:7:265:8 | m4 | map.cpp:265:7:265:8 | call to unordered_map | |
13391354
| map.cpp:266:7:266:8 | m5 | map.cpp:266:7:266:8 | call to unordered_map | |
13401355
| map.cpp:267:7:267:8 | m6 | map.cpp:267:7:267:8 | call to unordered_map | |
1356+
| map.cpp:268:7:268:8 | m1 | map.cpp:268:10:268:13 | call to find | TAINT |
13411357
| map.cpp:268:7:268:8 | ref arg m1 | map.cpp:274:7:274:8 | m1 | |
13421358
| map.cpp:268:7:268:8 | ref arg m1 | map.cpp:295:12:295:13 | m1 | |
13431359
| map.cpp:268:7:268:8 | ref arg m1 | map.cpp:295:30:295:31 | m1 | |
13441360
| map.cpp:268:7:268:8 | ref arg m1 | map.cpp:398:1:398:1 | m1 | |
1361+
| map.cpp:269:7:269:8 | m2 | map.cpp:269:10:269:13 | call to find | TAINT |
13451362
| map.cpp:269:7:269:8 | ref arg m2 | map.cpp:275:7:275:8 | m2 | |
13461363
| map.cpp:269:7:269:8 | ref arg m2 | map.cpp:282:40:282:41 | m2 | |
13471364
| map.cpp:269:7:269:8 | ref arg m2 | map.cpp:283:42:283:43 | m2 | |
@@ -1352,19 +1369,25 @@
13521369
| map.cpp:269:7:269:8 | ref arg m2 | map.cpp:332:7:332:8 | m2 | |
13531370
| map.cpp:269:7:269:8 | ref arg m2 | map.cpp:333:7:333:8 | m2 | |
13541371
| map.cpp:269:7:269:8 | ref arg m2 | map.cpp:398:1:398:1 | m2 | |
1372+
| map.cpp:270:7:270:8 | m3 | map.cpp:270:10:270:13 | call to find | TAINT |
13551373
| map.cpp:270:7:270:8 | ref arg m3 | map.cpp:276:7:276:8 | m3 | |
13561374
| map.cpp:270:7:270:8 | ref arg m3 | map.cpp:307:12:307:13 | m3 | |
13571375
| map.cpp:270:7:270:8 | ref arg m3 | map.cpp:307:30:307:31 | m3 | |
13581376
| map.cpp:270:7:270:8 | ref arg m3 | map.cpp:398:1:398:1 | m3 | |
1377+
| map.cpp:271:7:271:8 | m4 | map.cpp:271:10:271:13 | call to find | TAINT |
13591378
| map.cpp:271:7:271:8 | ref arg m4 | map.cpp:277:7:277:8 | m4 | |
13601379
| map.cpp:271:7:271:8 | ref arg m4 | map.cpp:398:1:398:1 | m4 | |
1380+
| map.cpp:272:7:272:8 | m5 | map.cpp:272:10:272:13 | call to find | TAINT |
13611381
| map.cpp:272:7:272:8 | ref arg m5 | map.cpp:278:7:278:8 | m5 | |
13621382
| map.cpp:272:7:272:8 | ref arg m5 | map.cpp:398:1:398:1 | m5 | |
1383+
| map.cpp:273:7:273:8 | m6 | map.cpp:273:10:273:13 | call to find | TAINT |
13631384
| map.cpp:273:7:273:8 | ref arg m6 | map.cpp:279:7:279:8 | m6 | |
13641385
| map.cpp:273:7:273:8 | ref arg m6 | map.cpp:398:1:398:1 | m6 | |
1386+
| map.cpp:274:7:274:8 | m1 | map.cpp:274:10:274:13 | call to find | TAINT |
13651387
| map.cpp:274:7:274:8 | ref arg m1 | map.cpp:295:12:295:13 | m1 | |
13661388
| map.cpp:274:7:274:8 | ref arg m1 | map.cpp:295:30:295:31 | m1 | |
13671389
| map.cpp:274:7:274:8 | ref arg m1 | map.cpp:398:1:398:1 | m1 | |
1390+
| map.cpp:275:7:275:8 | m2 | map.cpp:275:10:275:13 | call to find | TAINT |
13681391
| map.cpp:275:7:275:8 | ref arg m2 | map.cpp:282:40:282:41 | m2 | |
13691392
| map.cpp:275:7:275:8 | ref arg m2 | map.cpp:283:42:283:43 | m2 | |
13701393
| map.cpp:275:7:275:8 | ref arg m2 | map.cpp:285:7:285:8 | m2 | |
@@ -1374,11 +1397,15 @@
13741397
| map.cpp:275:7:275:8 | ref arg m2 | map.cpp:332:7:332:8 | m2 | |
13751398
| map.cpp:275:7:275:8 | ref arg m2 | map.cpp:333:7:333:8 | m2 | |
13761399
| map.cpp:275:7:275:8 | ref arg m2 | map.cpp:398:1:398:1 | m2 | |
1400+
| map.cpp:276:7:276:8 | m3 | map.cpp:276:10:276:13 | call to find | TAINT |
13771401
| map.cpp:276:7:276:8 | ref arg m3 | map.cpp:307:12:307:13 | m3 | |
13781402
| map.cpp:276:7:276:8 | ref arg m3 | map.cpp:307:30:307:31 | m3 | |
13791403
| map.cpp:276:7:276:8 | ref arg m3 | map.cpp:398:1:398:1 | m3 | |
1404+
| map.cpp:277:7:277:8 | m4 | map.cpp:277:10:277:13 | call to find | TAINT |
13801405
| map.cpp:277:7:277:8 | ref arg m4 | map.cpp:398:1:398:1 | m4 | |
1406+
| map.cpp:278:7:278:8 | m5 | map.cpp:278:10:278:13 | call to find | TAINT |
13811407
| map.cpp:278:7:278:8 | ref arg m5 | map.cpp:398:1:398:1 | m5 | |
1408+
| map.cpp:279:7:279:8 | m6 | map.cpp:279:10:279:13 | call to find | TAINT |
13821409
| map.cpp:279:7:279:8 | ref arg m6 | map.cpp:398:1:398:1 | m6 | |
13831410
| map.cpp:282:40:282:41 | m2 | map.cpp:282:40:282:42 | call to unordered_map | |
13841411
| map.cpp:282:40:282:42 | call to unordered_map | map.cpp:286:7:286:8 | m7 | |
@@ -1400,8 +1427,11 @@
14001427
| map.cpp:286:7:286:8 | m7 | map.cpp:286:7:286:8 | call to unordered_map | |
14011428
| map.cpp:287:7:287:8 | m8 | map.cpp:287:7:287:8 | call to unordered_map | |
14021429
| map.cpp:288:7:288:8 | m9 | map.cpp:288:7:288:8 | call to unordered_map | |
1430+
| map.cpp:289:7:289:8 | m7 | map.cpp:289:10:289:13 | call to find | TAINT |
14031431
| map.cpp:289:7:289:8 | ref arg m7 | map.cpp:398:1:398:1 | m7 | |
1432+
| map.cpp:290:7:290:8 | m8 | map.cpp:290:10:290:13 | call to find | TAINT |
14041433
| map.cpp:290:7:290:8 | ref arg m8 | map.cpp:398:1:398:1 | m8 | |
1434+
| map.cpp:291:7:291:8 | m9 | map.cpp:291:10:291:13 | call to find | TAINT |
14051435
| map.cpp:291:7:291:8 | ref arg m9 | map.cpp:398:1:398:1 | m9 | |
14061436
| map.cpp:295:12:295:13 | m1 | map.cpp:295:15:295:19 | call to begin | TAINT |
14071437
| map.cpp:295:12:295:13 | ref arg m1 | map.cpp:295:30:295:31 | m1 | |

cpp/ql/test/library-tests/dataflow/taint-tests/map.cpp

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -114,17 +114,17 @@ void test_map()
114114
sink(m5); // tainted
115115
sink(m6); // tainted
116116
sink(m1.find("abc"));
117-
sink(m2.find("abc")); // tainted [NOT DETECTED]
118-
sink(m3.find("abc"));
119-
sink(m4.find("abc")); // tainted [NOT DETECTED]
120-
sink(m5.find("abc")); // tainted [NOT DETECTED]
121-
sink(m6.find("abc")); // tainted [NOT DETECTED]
117+
sink(m2.find("abc")); // tainted
118+
sink(m3.find("abc")); // [FALSE POSITIVE]
119+
sink(m4.find("abc")); // tainted
120+
sink(m5.find("abc")); // tainted
121+
sink(m6.find("abc")); // tainted
122122
sink(m1.find("def"));
123-
sink(m2.find("def"));
124-
sink(m3.find("def"));
125-
sink(m4.find("def"));
126-
sink(m5.find("def"));
127-
sink(m6.find("def"));
123+
sink(m2.find("def")); // [FALSE POSITIVE]
124+
sink(m3.find("def")); // [FALSE POSITIVE]
125+
sink(m4.find("def")); // [FALSE POSITIVE]
126+
sink(m5.find("def")); // [FALSE POSITIVE]
127+
sink(m6.find("def")); // [FALSE POSITIVE]
128128

129129
// copy constructors and assignment
130130
std::map<char *, char *> m7(m2);
@@ -134,9 +134,9 @@ void test_map()
134134
sink(m7); // tainted
135135
sink(m8); // tainted
136136
sink(m9); // tainted
137-
sink(m7.find("abc")); // tainted [NOT DETECTED]
138-
sink(m8.find("abc")); // tainted [NOT DETECTED]
139-
sink(m9.find("abc")); // tainted [NOT DETECTED]
137+
sink(m7.find("abc")); // tainted
138+
sink(m8.find("abc")); // tainted
139+
sink(m9.find("abc")); // tainted
140140

141141
// iterators
142142
std::map<char *, char *>::iterator i1, i2, i3;
@@ -266,17 +266,17 @@ void test_unordered_map()
266266
sink(m5); // tainted
267267
sink(m6); // tainted
268268
sink(m1.find("abc"));
269-
sink(m2.find("abc")); // tainted [NOT DETECTED]
270-
sink(m3.find("abc"));
271-
sink(m4.find("abc")); // tainted [NOT DETECTED]
272-
sink(m5.find("abc")); // tainted [NOT DETECTED]
273-
sink(m6.find("abc")); // tainted [NOT DETECTED]
269+
sink(m2.find("abc")); // tainted
270+
sink(m3.find("abc")); // [FALSE POSITIVE]
271+
sink(m4.find("abc")); // tainted
272+
sink(m5.find("abc")); // tainted
273+
sink(m6.find("abc")); // tainted
274274
sink(m1.find("def"));
275-
sink(m2.find("def"));
276-
sink(m3.find("def"));
277-
sink(m4.find("def"));
278-
sink(m5.find("def"));
279-
sink(m6.find("def"));
275+
sink(m2.find("def")); // [FALSE POSITIVE]
276+
sink(m3.find("def")); // [FALSE POSITIVE]
277+
sink(m4.find("def")); // [FALSE POSITIVE]
278+
sink(m5.find("def")); // [FALSE POSITIVE]
279+
sink(m6.find("def")); // [FALSE POSITIVE]
280280

281281
// copy constructors and assignment
282282
std::unordered_map<char *, char *> m7(m2);
@@ -286,9 +286,9 @@ void test_unordered_map()
286286
sink(m7); // tainted
287287
sink(m8); // tainted
288288
sink(m9); // tainted
289-
sink(m7.find("abc")); // tainted [NOT DETECTED]
290-
sink(m8.find("abc")); // tainted [NOT DETECTED]
291-
sink(m9.find("abc")); // tainted [NOT DETECTED]
289+
sink(m7.find("abc")); // tainted
290+
sink(m8.find("abc")); // tainted
291+
sink(m9.find("abc")); // tainted
292292

293293
// iterators
294294
std::unordered_map<char *, char *>::iterator i1, i2, i3;

cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,22 @@
5353
| map.cpp:113:7:113:8 | call to map | map.cpp:107:62:107:67 | call to source |
5454
| map.cpp:114:7:114:8 | call to map | map.cpp:108:34:108:39 | call to source |
5555
| map.cpp:115:7:115:8 | call to map | map.cpp:109:46:109:51 | call to source |
56+
| map.cpp:117:10:117:13 | call to find | map.cpp:105:39:105:44 | call to source |
57+
| map.cpp:118:10:118:13 | call to find | map.cpp:106:32:106:37 | call to source |
58+
| map.cpp:119:10:119:13 | call to find | map.cpp:107:62:107:67 | call to source |
59+
| map.cpp:120:10:120:13 | call to find | map.cpp:108:34:108:39 | call to source |
60+
| map.cpp:121:10:121:13 | call to find | map.cpp:109:46:109:51 | call to source |
61+
| map.cpp:123:10:123:13 | call to find | map.cpp:105:39:105:44 | call to source |
62+
| map.cpp:124:10:124:13 | call to find | map.cpp:106:32:106:37 | call to source |
63+
| map.cpp:125:10:125:13 | call to find | map.cpp:107:62:107:67 | call to source |
64+
| map.cpp:126:10:126:13 | call to find | map.cpp:108:34:108:39 | call to source |
65+
| map.cpp:127:10:127:13 | call to find | map.cpp:109:46:109:51 | call to source |
5666
| map.cpp:134:7:134:8 | call to map | map.cpp:105:39:105:44 | call to source |
5767
| map.cpp:135:7:135:8 | call to map | map.cpp:105:39:105:44 | call to source |
5868
| map.cpp:136:7:136:8 | call to map | map.cpp:105:39:105:44 | call to source |
69+
| map.cpp:137:10:137:13 | call to find | map.cpp:105:39:105:44 | call to source |
70+
| map.cpp:138:10:138:13 | call to find | map.cpp:105:39:105:44 | call to source |
71+
| map.cpp:139:10:139:13 | call to find | map.cpp:105:39:105:44 | call to source |
5972
| map.cpp:151:8:151:10 | call to pair | map.cpp:105:39:105:44 | call to source |
6073
| map.cpp:157:8:157:10 | call to pair | map.cpp:106:32:106:37 | call to source |
6174
| map.cpp:165:7:165:27 | ... = ... | map.cpp:165:20:165:25 | call to source |
@@ -101,9 +114,22 @@
101114
| map.cpp:265:7:265:8 | call to unordered_map | map.cpp:259:62:259:67 | call to source |
102115
| map.cpp:266:7:266:8 | call to unordered_map | map.cpp:260:34:260:39 | call to source |
103116
| map.cpp:267:7:267:8 | call to unordered_map | map.cpp:261:46:261:51 | call to source |
117+
| map.cpp:269:10:269:13 | call to find | map.cpp:257:39:257:44 | call to source |
118+
| map.cpp:270:10:270:13 | call to find | map.cpp:258:32:258:37 | call to source |
119+
| map.cpp:271:10:271:13 | call to find | map.cpp:259:62:259:67 | call to source |
120+
| map.cpp:272:10:272:13 | call to find | map.cpp:260:34:260:39 | call to source |
121+
| map.cpp:273:10:273:13 | call to find | map.cpp:261:46:261:51 | call to source |
122+
| map.cpp:275:10:275:13 | call to find | map.cpp:257:39:257:44 | call to source |
123+
| map.cpp:276:10:276:13 | call to find | map.cpp:258:32:258:37 | call to source |
124+
| map.cpp:277:10:277:13 | call to find | map.cpp:259:62:259:67 | call to source |
125+
| map.cpp:278:10:278:13 | call to find | map.cpp:260:34:260:39 | call to source |
126+
| map.cpp:279:10:279:13 | call to find | map.cpp:261:46:261:51 | call to source |
104127
| map.cpp:286:7:286:8 | call to unordered_map | map.cpp:257:39:257:44 | call to source |
105128
| map.cpp:287:7:287:8 | call to unordered_map | map.cpp:257:39:257:44 | call to source |
106129
| map.cpp:288:7:288:8 | call to unordered_map | map.cpp:257:39:257:44 | call to source |
130+
| map.cpp:289:10:289:13 | call to find | map.cpp:257:39:257:44 | call to source |
131+
| map.cpp:290:10:290:13 | call to find | map.cpp:257:39:257:44 | call to source |
132+
| map.cpp:291:10:291:13 | call to find | map.cpp:257:39:257:44 | call to source |
107133
| map.cpp:303:8:303:10 | call to pair | map.cpp:257:39:257:44 | call to source |
108134
| map.cpp:309:8:309:10 | call to pair | map.cpp:258:32:258:37 | call to source |
109135
| map.cpp:317:7:317:27 | ... = ... | map.cpp:317:20:317:25 | call to source |

cpp/ql/test/library-tests/dataflow/taint-tests/test_diff.expected

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,15 @@
5050
| map.cpp:113:7:113:8 | map.cpp:107:62:107:67 | AST only |
5151
| map.cpp:114:7:114:8 | map.cpp:108:34:108:39 | AST only |
5252
| map.cpp:115:7:115:8 | map.cpp:109:46:109:51 | AST only |
53+
| map.cpp:120:10:120:13 | map.cpp:108:34:108:39 | AST only |
54+
| map.cpp:121:10:121:13 | map.cpp:109:46:109:51 | AST only |
55+
| map.cpp:126:10:126:13 | map.cpp:108:34:108:39 | AST only |
56+
| map.cpp:127:10:127:13 | map.cpp:109:46:109:51 | AST only |
5357
| map.cpp:134:7:134:8 | map.cpp:105:39:105:44 | AST only |
5458
| map.cpp:135:7:135:8 | map.cpp:105:39:105:44 | AST only |
5559
| map.cpp:136:7:136:8 | map.cpp:105:39:105:44 | AST only |
60+
| map.cpp:137:10:137:13 | map.cpp:105:39:105:44 | AST only |
61+
| map.cpp:138:10:138:13 | map.cpp:105:39:105:44 | AST only |
5662
| map.cpp:152:12:152:16 | map.cpp:105:39:105:44 | IR only |
5763
| map.cpp:153:12:153:17 | map.cpp:105:39:105:44 | IR only |
5864
| map.cpp:158:12:158:16 | map.cpp:105:39:105:44 | IR only |
@@ -99,9 +105,15 @@
99105
| map.cpp:265:7:265:8 | map.cpp:259:62:259:67 | AST only |
100106
| map.cpp:266:7:266:8 | map.cpp:260:34:260:39 | AST only |
101107
| map.cpp:267:7:267:8 | map.cpp:261:46:261:51 | AST only |
108+
| map.cpp:272:10:272:13 | map.cpp:260:34:260:39 | AST only |
109+
| map.cpp:273:10:273:13 | map.cpp:261:46:261:51 | AST only |
110+
| map.cpp:278:10:278:13 | map.cpp:260:34:260:39 | AST only |
111+
| map.cpp:279:10:279:13 | map.cpp:261:46:261:51 | AST only |
102112
| map.cpp:286:7:286:8 | map.cpp:257:39:257:44 | AST only |
103113
| map.cpp:287:7:287:8 | map.cpp:257:39:257:44 | AST only |
104114
| map.cpp:288:7:288:8 | map.cpp:257:39:257:44 | AST only |
115+
| map.cpp:289:10:289:13 | map.cpp:257:39:257:44 | AST only |
116+
| map.cpp:290:10:290:13 | map.cpp:257:39:257:44 | AST only |
105117
| map.cpp:304:12:304:16 | map.cpp:257:39:257:44 | IR only |
106118
| map.cpp:305:12:305:17 | map.cpp:257:39:257:44 | IR only |
107119
| map.cpp:310:12:310:16 | map.cpp:257:39:257:44 | IR only |

cpp/ql/test/library-tests/dataflow/taint-tests/test_ir.expected

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,13 @@
8383
| map.cpp:107:10:107:15 | call to insert | map.cpp:107:62:107:67 | call to source |
8484
| map.cpp:108:7:108:48 | call to iterator | map.cpp:108:34:108:39 | call to source |
8585
| map.cpp:109:10:109:25 | call to insert_or_assign | map.cpp:109:46:109:51 | call to source |
86+
| map.cpp:117:10:117:13 | call to find | map.cpp:105:39:105:44 | call to source |
87+
| map.cpp:118:10:118:13 | call to find | map.cpp:106:32:106:37 | call to source |
88+
| map.cpp:119:10:119:13 | call to find | map.cpp:107:62:107:67 | call to source |
89+
| map.cpp:123:10:123:13 | call to find | map.cpp:105:39:105:44 | call to source |
90+
| map.cpp:124:10:124:13 | call to find | map.cpp:106:32:106:37 | call to source |
91+
| map.cpp:125:10:125:13 | call to find | map.cpp:107:62:107:67 | call to source |
92+
| map.cpp:139:10:139:13 | call to find | map.cpp:105:39:105:44 | call to source |
8693
| map.cpp:151:8:151:10 | call to pair | map.cpp:105:39:105:44 | call to source |
8794
| map.cpp:152:12:152:16 | first | map.cpp:105:39:105:44 | call to source |
8895
| map.cpp:153:12:153:17 | second | map.cpp:105:39:105:44 | call to source |
@@ -96,6 +103,13 @@
96103
| map.cpp:259:10:259:15 | call to insert | map.cpp:259:62:259:67 | call to source |
97104
| map.cpp:260:7:260:48 | call to iterator | map.cpp:260:34:260:39 | call to source |
98105
| map.cpp:261:10:261:25 | call to insert_or_assign | map.cpp:261:46:261:51 | call to source |
106+
| map.cpp:269:10:269:13 | call to find | map.cpp:257:39:257:44 | call to source |
107+
| map.cpp:270:10:270:13 | call to find | map.cpp:258:32:258:37 | call to source |
108+
| map.cpp:271:10:271:13 | call to find | map.cpp:259:62:259:67 | call to source |
109+
| map.cpp:275:10:275:13 | call to find | map.cpp:257:39:257:44 | call to source |
110+
| map.cpp:276:10:276:13 | call to find | map.cpp:258:32:258:37 | call to source |
111+
| map.cpp:277:10:277:13 | call to find | map.cpp:259:62:259:67 | call to source |
112+
| map.cpp:291:10:291:13 | call to find | map.cpp:257:39:257:44 | call to source |
99113
| map.cpp:303:8:303:10 | call to pair | map.cpp:257:39:257:44 | call to source |
100114
| map.cpp:304:12:304:16 | first | map.cpp:257:39:257:44 | call to source |
101115
| map.cpp:305:12:305:17 | second | map.cpp:257:39:257:44 | call to source |

0 commit comments

Comments
 (0)