Skip to content

Commit 01cc2f2

Browse files
authored
Merge pull request github#5366 from MathiasVP/better-path-explanation-for-this-indirection
C++: Replace 'Argument -1 indirection' with 'This indirection'
2 parents 87e4dec + 9439ed4 commit 01cc2f2

File tree

7 files changed

+279
-258
lines changed

7 files changed

+279
-258
lines changed

cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll

+24-3
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,19 @@ private class PrimaryArgumentNode extends ArgumentNode {
3131
override predicate argumentOf(DataFlowCall call, int pos) { op = call.getArgumentOperand(pos) }
3232

3333
override string toString() {
34-
result = "Argument " + op.(PositionalArgumentOperand).getIndex()
34+
exists(Expr unconverted |
35+
unconverted = op.getDef().getUnconvertedResultExpression() and
36+
result = unconverted.toString()
37+
)
3538
or
36-
op instanceof ThisArgumentOperand and result = "This argument"
39+
// Certain instructions don't map to an unconverted result expression. For these cases
40+
// we fall back to a simpler naming scheme. This can happen in IR-generated constructors.
41+
not exists(op.getDef().getUnconvertedResultExpression()) and
42+
(
43+
result = "Argument " + op.(PositionalArgumentOperand).getIndex()
44+
or
45+
op instanceof ThisArgumentOperand and result = "Argument this"
46+
)
3747
}
3848
}
3949

@@ -52,7 +62,18 @@ private class SideEffectArgumentNode extends ArgumentNode {
5262
pos = getArgumentPosOfSideEffect(read.getIndex())
5363
}
5464

55-
override string toString() { result = "Argument " + read.getIndex() + " indirection" }
65+
override string toString() {
66+
result = read.getArgumentDef().getUnconvertedResultExpression().toString() + " indirection"
67+
or
68+
// Some instructions don't map to an unconverted result expression. For these cases
69+
// we fall back to a simpler naming scheme. This can happen in IR-generated constructors.
70+
not exists(read.getArgumentDef().getUnconvertedResultExpression()) and
71+
(
72+
if read.getIndex() = -1
73+
then result = "Argument this indirection"
74+
else result = "Argument " + read.getIndex() + " indirection"
75+
)
76+
}
5677
}
5778

5879
private newtype TReturnKind =

cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected

+178-178
Large diffs are not rendered by default.

cpp/ql/test/query-tests/Security/CWE/CWE-079/semmle/CgiXss/CgiXss.expected

+16-16
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@ edges
88
| search.c:22:24:22:28 | *query | search.c:23:39:23:43 | query |
99
| search.c:22:24:22:28 | query | search.c:23:39:23:43 | query |
1010
| search.c:22:24:22:28 | query | search.c:23:39:23:43 | query |
11-
| search.c:51:21:51:26 | call to getenv | search.c:55:5:55:15 | Argument 0 |
12-
| search.c:51:21:51:26 | call to getenv | search.c:55:5:55:15 | Argument 0 |
13-
| search.c:51:21:51:26 | call to getenv | search.c:55:17:55:25 | Argument 0 indirection |
14-
| search.c:51:21:51:26 | call to getenv | search.c:55:17:55:25 | Argument 0 indirection |
15-
| search.c:51:21:51:26 | call to getenv | search.c:57:5:57:15 | Argument 0 |
16-
| search.c:51:21:51:26 | call to getenv | search.c:57:5:57:15 | Argument 0 |
17-
| search.c:51:21:51:26 | call to getenv | search.c:57:17:57:25 | Argument 0 indirection |
18-
| search.c:51:21:51:26 | call to getenv | search.c:57:17:57:25 | Argument 0 indirection |
19-
| search.c:55:5:55:15 | Argument 0 | search.c:14:24:14:28 | query |
20-
| search.c:55:17:55:25 | Argument 0 indirection | search.c:14:24:14:28 | *query |
21-
| search.c:57:5:57:15 | Argument 0 | search.c:22:24:22:28 | query |
22-
| search.c:57:17:57:25 | Argument 0 indirection | search.c:22:24:22:28 | *query |
11+
| search.c:51:21:51:26 | call to getenv | search.c:55:5:55:15 | raw_query |
12+
| search.c:51:21:51:26 | call to getenv | search.c:55:5:55:15 | raw_query |
13+
| search.c:51:21:51:26 | call to getenv | search.c:55:17:55:25 | raw_query indirection |
14+
| search.c:51:21:51:26 | call to getenv | search.c:55:17:55:25 | raw_query indirection |
15+
| search.c:51:21:51:26 | call to getenv | search.c:57:5:57:15 | raw_query |
16+
| search.c:51:21:51:26 | call to getenv | search.c:57:5:57:15 | raw_query |
17+
| search.c:51:21:51:26 | call to getenv | search.c:57:17:57:25 | raw_query indirection |
18+
| search.c:51:21:51:26 | call to getenv | search.c:57:17:57:25 | raw_query indirection |
19+
| search.c:55:5:55:15 | raw_query | search.c:14:24:14:28 | query |
20+
| search.c:55:17:55:25 | raw_query indirection | search.c:14:24:14:28 | *query |
21+
| search.c:57:5:57:15 | raw_query | search.c:22:24:22:28 | query |
22+
| search.c:57:17:57:25 | raw_query indirection | search.c:22:24:22:28 | *query |
2323
nodes
2424
| search.c:14:24:14:28 | *query | semmle.label | *query |
2525
| search.c:14:24:14:28 | query | semmle.label | query |
@@ -35,10 +35,10 @@ nodes
3535
| search.c:23:39:23:43 | query | semmle.label | query |
3636
| search.c:51:21:51:26 | call to getenv | semmle.label | call to getenv |
3737
| search.c:51:21:51:26 | call to getenv | semmle.label | call to getenv |
38-
| search.c:55:5:55:15 | Argument 0 | semmle.label | Argument 0 |
39-
| search.c:55:17:55:25 | Argument 0 indirection | semmle.label | Argument 0 indirection |
40-
| search.c:57:5:57:15 | Argument 0 | semmle.label | Argument 0 |
41-
| search.c:57:17:57:25 | Argument 0 indirection | semmle.label | Argument 0 indirection |
38+
| search.c:55:5:55:15 | raw_query | semmle.label | raw_query |
39+
| search.c:55:17:55:25 | raw_query indirection | semmle.label | raw_query indirection |
40+
| search.c:57:5:57:15 | raw_query | semmle.label | raw_query |
41+
| search.c:57:17:57:25 | raw_query indirection | semmle.label | raw_query indirection |
4242
#select
4343
| search.c:17:8:17:12 | query | search.c:51:21:51:26 | call to getenv | search.c:17:8:17:12 | query | Cross-site scripting vulnerability due to $@. | search.c:51:21:51:26 | call to getenv | this query data |
4444
| search.c:23:39:23:43 | query | search.c:51:21:51:26 | call to getenv | search.c:23:39:23:43 | query | Cross-site scripting vulnerability due to $@. | search.c:51:21:51:26 | call to getenv | this query data |

cpp/ql/test/query-tests/Security/CWE/CWE-114/semmle/UncontrolledProcessOperation/UncontrolledProcessOperation.expected

+16-16
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@ edges
77
| test.cpp:29:30:29:36 | *command | test.cpp:31:10:31:16 | command |
88
| test.cpp:29:30:29:36 | command | test.cpp:31:10:31:16 | command |
99
| test.cpp:29:30:29:36 | command | test.cpp:31:10:31:16 | command |
10-
| test.cpp:42:7:42:16 | Argument 0 | test.cpp:24:30:24:36 | command |
11-
| test.cpp:42:18:42:23 | call to getenv | test.cpp:42:7:42:16 | Argument 0 |
12-
| test.cpp:42:18:42:23 | call to getenv | test.cpp:42:18:42:34 | Argument 0 indirection |
13-
| test.cpp:42:18:42:34 | (const char *)... | test.cpp:42:7:42:16 | Argument 0 |
14-
| test.cpp:42:18:42:34 | (const char *)... | test.cpp:42:18:42:34 | Argument 0 indirection |
15-
| test.cpp:42:18:42:34 | Argument 0 indirection | test.cpp:24:30:24:36 | *command |
16-
| test.cpp:43:7:43:16 | Argument 0 | test.cpp:29:30:29:36 | command |
17-
| test.cpp:43:18:43:23 | call to getenv | test.cpp:43:7:43:16 | Argument 0 |
18-
| test.cpp:43:18:43:23 | call to getenv | test.cpp:43:18:43:34 | Argument 0 indirection |
19-
| test.cpp:43:18:43:34 | (const char *)... | test.cpp:43:7:43:16 | Argument 0 |
20-
| test.cpp:43:18:43:34 | (const char *)... | test.cpp:43:18:43:34 | Argument 0 indirection |
21-
| test.cpp:43:18:43:34 | Argument 0 indirection | test.cpp:29:30:29:36 | *command |
10+
| test.cpp:42:7:42:16 | call to getenv | test.cpp:24:30:24:36 | command |
11+
| test.cpp:42:18:42:23 | call to getenv | test.cpp:42:7:42:16 | call to getenv |
12+
| test.cpp:42:18:42:23 | call to getenv | test.cpp:42:18:42:34 | call to getenv indirection |
13+
| test.cpp:42:18:42:34 | (const char *)... | test.cpp:42:7:42:16 | call to getenv |
14+
| test.cpp:42:18:42:34 | (const char *)... | test.cpp:42:18:42:34 | call to getenv indirection |
15+
| test.cpp:42:18:42:34 | call to getenv indirection | test.cpp:24:30:24:36 | *command |
16+
| test.cpp:43:7:43:16 | call to getenv | test.cpp:29:30:29:36 | command |
17+
| test.cpp:43:18:43:23 | call to getenv | test.cpp:43:7:43:16 | call to getenv |
18+
| test.cpp:43:18:43:23 | call to getenv | test.cpp:43:18:43:34 | call to getenv indirection |
19+
| test.cpp:43:18:43:34 | (const char *)... | test.cpp:43:7:43:16 | call to getenv |
20+
| test.cpp:43:18:43:34 | (const char *)... | test.cpp:43:18:43:34 | call to getenv indirection |
21+
| test.cpp:43:18:43:34 | call to getenv indirection | test.cpp:29:30:29:36 | *command |
2222
| test.cpp:56:12:56:17 | buffer | test.cpp:62:10:62:15 | (const char *)... |
2323
| test.cpp:56:12:56:17 | buffer | test.cpp:62:10:62:15 | buffer |
2424
| test.cpp:56:12:56:17 | buffer | test.cpp:63:10:63:13 | (const char *)... |
@@ -46,14 +46,14 @@ nodes
4646
| test.cpp:31:10:31:16 | command | semmle.label | command |
4747
| test.cpp:31:10:31:16 | command | semmle.label | command |
4848
| test.cpp:31:10:31:16 | command | semmle.label | command |
49-
| test.cpp:42:7:42:16 | Argument 0 | semmle.label | Argument 0 |
49+
| test.cpp:42:7:42:16 | call to getenv | semmle.label | call to getenv |
5050
| test.cpp:42:18:42:23 | call to getenv | semmle.label | call to getenv |
5151
| test.cpp:42:18:42:34 | (const char *)... | semmle.label | (const char *)... |
52-
| test.cpp:42:18:42:34 | Argument 0 indirection | semmle.label | Argument 0 indirection |
53-
| test.cpp:43:7:43:16 | Argument 0 | semmle.label | Argument 0 |
52+
| test.cpp:42:18:42:34 | call to getenv indirection | semmle.label | call to getenv indirection |
53+
| test.cpp:43:7:43:16 | call to getenv | semmle.label | call to getenv |
5454
| test.cpp:43:18:43:23 | call to getenv | semmle.label | call to getenv |
5555
| test.cpp:43:18:43:34 | (const char *)... | semmle.label | (const char *)... |
56-
| test.cpp:43:18:43:34 | Argument 0 indirection | semmle.label | Argument 0 indirection |
56+
| test.cpp:43:18:43:34 | call to getenv indirection | semmle.label | call to getenv indirection |
5757
| test.cpp:56:12:56:17 | buffer | semmle.label | buffer |
5858
| test.cpp:56:12:56:17 | fgets output argument | semmle.label | fgets output argument |
5959
| test.cpp:62:10:62:15 | (const char *)... | semmle.label | (const char *)... |

cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected

+26-26
Original file line numberDiff line numberDiff line change
@@ -53,26 +53,26 @@ edges
5353
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:116:9:116:10 | (const char *)... |
5454
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:116:9:116:10 | i3 |
5555
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:116:9:116:10 | i3 |
56-
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:2:117:13 | Argument 0 |
57-
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:2:117:13 | Argument 0 |
58-
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | Argument 0 indirection |
59-
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | Argument 0 indirection |
56+
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:2:117:13 | i3 |
57+
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:2:117:13 | i3 |
6058
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | array to pointer conversion |
6159
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | array to pointer conversion |
6260
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | i3 |
6361
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | i3 |
62+
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | i3 indirection |
63+
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | i3 indirection |
6464
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:121:9:121:10 | (const char *)... |
6565
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:121:9:121:10 | (const char *)... |
6666
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:121:9:121:10 | i4 |
6767
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:121:9:121:10 | i4 |
68-
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:2:122:13 | Argument 0 |
69-
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:2:122:13 | Argument 0 |
70-
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | Argument 0 indirection |
71-
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | Argument 0 indirection |
68+
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:2:122:13 | i4 |
69+
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:2:122:13 | i4 |
7270
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 |
7371
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 |
7472
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 |
7573
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 |
74+
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 indirection |
75+
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 indirection |
7676
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | (const char *)... |
7777
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | (const char *)... |
7878
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ |
@@ -81,20 +81,20 @@ edges
8181
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... |
8282
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... |
8383
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... |
84-
| argvLocal.c:117:2:117:13 | Argument 0 | argvLocal.c:117:15:117:16 | printWrapper output argument |
85-
| argvLocal.c:117:15:117:16 | Argument 0 indirection | argvLocal.c:117:15:117:16 | printWrapper output argument |
84+
| argvLocal.c:117:2:117:13 | i3 | argvLocal.c:117:15:117:16 | printWrapper output argument |
85+
| argvLocal.c:117:15:117:16 | i3 indirection | argvLocal.c:117:15:117:16 | printWrapper output argument |
8686
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:121:9:121:10 | (const char *)... |
8787
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:121:9:121:10 | i4 |
88-
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:122:2:122:13 | Argument 0 |
89-
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:122:15:122:16 | Argument 0 indirection |
88+
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:122:2:122:13 | i4 |
9089
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:122:15:122:16 | i4 |
9190
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:122:15:122:16 | i4 |
91+
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:122:15:122:16 | i4 indirection |
9292
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:135:9:135:12 | (const char *)... |
9393
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:135:9:135:12 | ... ++ |
9494
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:136:15:136:18 | -- ... |
9595
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:136:15:136:18 | -- ... |
96-
| argvLocal.c:122:2:122:13 | Argument 0 | argvLocal.c:122:15:122:16 | printWrapper output argument |
97-
| argvLocal.c:122:15:122:16 | Argument 0 indirection | argvLocal.c:122:15:122:16 | printWrapper output argument |
96+
| argvLocal.c:122:2:122:13 | i4 | argvLocal.c:122:15:122:16 | printWrapper output argument |
97+
| argvLocal.c:122:15:122:16 | i4 indirection | argvLocal.c:122:15:122:16 | printWrapper output argument |
9898
| argvLocal.c:122:15:122:16 | printWrapper output argument | argvLocal.c:135:9:135:12 | (const char *)... |
9999
| argvLocal.c:122:15:122:16 | printWrapper output argument | argvLocal.c:135:9:135:12 | ... ++ |
100100
| argvLocal.c:122:15:122:16 | printWrapper output argument | argvLocal.c:136:15:136:18 | -- ... |
@@ -103,14 +103,14 @@ edges
103103
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:127:9:127:10 | (const char *)... |
104104
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:127:9:127:10 | i5 |
105105
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:127:9:127:10 | i5 |
106-
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:2:128:13 | Argument 0 |
107-
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:2:128:13 | Argument 0 |
108-
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | Argument 0 indirection |
109-
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | Argument 0 indirection |
106+
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:2:128:13 | i5 |
107+
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:2:128:13 | i5 |
110108
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | array to pointer conversion |
111109
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | array to pointer conversion |
112110
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | i5 |
113111
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | i5 |
112+
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | i5 indirection |
113+
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | i5 indirection |
114114
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:131:9:131:14 | (const char *)... |
115115
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:131:9:131:14 | (const char *)... |
116116
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:131:9:131:14 | ... + ... |
@@ -119,8 +119,8 @@ edges
119119
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:132:15:132:20 | ... + ... |
120120
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:132:15:132:20 | ... + ... |
121121
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:132:15:132:20 | ... + ... |
122-
| argvLocal.c:128:2:128:13 | Argument 0 | argvLocal.c:128:15:128:16 | printWrapper output argument |
123-
| argvLocal.c:128:15:128:16 | Argument 0 indirection | argvLocal.c:128:15:128:16 | printWrapper output argument |
122+
| argvLocal.c:128:2:128:13 | i5 | argvLocal.c:128:15:128:16 | printWrapper output argument |
123+
| argvLocal.c:128:15:128:16 | i5 indirection | argvLocal.c:128:15:128:16 | printWrapper output argument |
124124
| argvLocal.c:128:15:128:16 | printWrapper output argument | argvLocal.c:131:9:131:14 | (const char *)... |
125125
| argvLocal.c:128:15:128:16 | printWrapper output argument | argvLocal.c:131:9:131:14 | ... + ... |
126126
| argvLocal.c:128:15:128:16 | printWrapper output argument | argvLocal.c:132:15:132:20 | ... + ... |
@@ -214,31 +214,31 @@ nodes
214214
| argvLocal.c:116:9:116:10 | (const char *)... | semmle.label | (const char *)... |
215215
| argvLocal.c:116:9:116:10 | (const char *)... | semmle.label | (const char *)... |
216216
| argvLocal.c:116:9:116:10 | i3 | semmle.label | i3 |
217-
| argvLocal.c:117:2:117:13 | Argument 0 | semmle.label | Argument 0 |
218-
| argvLocal.c:117:15:117:16 | Argument 0 indirection | semmle.label | Argument 0 indirection |
217+
| argvLocal.c:117:2:117:13 | i3 | semmle.label | i3 |
219218
| argvLocal.c:117:15:117:16 | array to pointer conversion | semmle.label | array to pointer conversion |
220219
| argvLocal.c:117:15:117:16 | array to pointer conversion | semmle.label | array to pointer conversion |
221220
| argvLocal.c:117:15:117:16 | i3 | semmle.label | i3 |
221+
| argvLocal.c:117:15:117:16 | i3 indirection | semmle.label | i3 indirection |
222222
| argvLocal.c:117:15:117:16 | printWrapper output argument | semmle.label | printWrapper output argument |
223223
| argvLocal.c:121:9:121:10 | (const char *)... | semmle.label | (const char *)... |
224224
| argvLocal.c:121:9:121:10 | (const char *)... | semmle.label | (const char *)... |
225225
| argvLocal.c:121:9:121:10 | i4 | semmle.label | i4 |
226-
| argvLocal.c:122:2:122:13 | Argument 0 | semmle.label | Argument 0 |
227-
| argvLocal.c:122:15:122:16 | Argument 0 indirection | semmle.label | Argument 0 indirection |
226+
| argvLocal.c:122:2:122:13 | i4 | semmle.label | i4 |
228227
| argvLocal.c:122:15:122:16 | i4 | semmle.label | i4 |
229228
| argvLocal.c:122:15:122:16 | i4 | semmle.label | i4 |
230229
| argvLocal.c:122:15:122:16 | i4 | semmle.label | i4 |
230+
| argvLocal.c:122:15:122:16 | i4 indirection | semmle.label | i4 indirection |
231231
| argvLocal.c:122:15:122:16 | printWrapper output argument | semmle.label | printWrapper output argument |
232232
| argvLocal.c:126:10:126:13 | argv | semmle.label | argv |
233233
| argvLocal.c:126:10:126:13 | argv | semmle.label | argv |
234234
| argvLocal.c:127:9:127:10 | (const char *)... | semmle.label | (const char *)... |
235235
| argvLocal.c:127:9:127:10 | (const char *)... | semmle.label | (const char *)... |
236236
| argvLocal.c:127:9:127:10 | i5 | semmle.label | i5 |
237-
| argvLocal.c:128:2:128:13 | Argument 0 | semmle.label | Argument 0 |
238-
| argvLocal.c:128:15:128:16 | Argument 0 indirection | semmle.label | Argument 0 indirection |
237+
| argvLocal.c:128:2:128:13 | i5 | semmle.label | i5 |
239238
| argvLocal.c:128:15:128:16 | array to pointer conversion | semmle.label | array to pointer conversion |
240239
| argvLocal.c:128:15:128:16 | array to pointer conversion | semmle.label | array to pointer conversion |
241240
| argvLocal.c:128:15:128:16 | i5 | semmle.label | i5 |
241+
| argvLocal.c:128:15:128:16 | i5 indirection | semmle.label | i5 indirection |
242242
| argvLocal.c:128:15:128:16 | printWrapper output argument | semmle.label | printWrapper output argument |
243243
| argvLocal.c:131:9:131:14 | (const char *)... | semmle.label | (const char *)... |
244244
| argvLocal.c:131:9:131:14 | (const char *)... | semmle.label | (const char *)... |

0 commit comments

Comments
 (0)