Skip to content

Commit ea4ca31

Browse files
authored
Merge pull request github#2907 from geoffw0/argvlocal
C++: Modify the argvlocal tests
2 parents 67b3279 + 4af0193 commit ea4ca31

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

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

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,19 +146,21 @@ int main(int argc, char **argv) {
146146

147147
// BAD: i8 value comes from argv
148148
char *i8;
149-
*(&i8 + 1) = argv[1];
149+
*(&i8) = argv[1];
150150
printf(i8);
151151
printWrapper(i8);
152152

153153
// BAD: i9 value comes from argv
154-
char *i9;
155-
memcpy(1 ? i9++ : 0, argv[1], 1);
154+
char i9buf[32];
155+
char *i9 = i9buf;
156+
memcpy(1 ? ++i9 : 0, argv[1], 1);
156157
printf(i9);
157158
printWrapper(i9);
158159

159160
// BAD: i91 value comes from argv
160-
char *i91;
161-
memcpy(0 ? 0 : (char *)((int) i91 * 2), argv[1], 1);
161+
char i91buf[64];
162+
char *i91 = &i91buf[0];
163+
memcpy(0 ? 0 : i91, argv[1] + 1, 1);
162164
printf(i91);
163165
printWrapper(i91);
164166

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,11 @@
1818
| argvLocal.c:136:15:136:18 | -- ... | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:115:13:115:16 | argv | argv |
1919
| argvLocal.c:144:9:144:10 | i7 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:100:7:100:10 | argv | argv |
2020
| argvLocal.c:145:15:145:16 | i7 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:100:7:100:10 | argv | argv |
21-
| argvLocal.c:167:18:167:20 | i10 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:166:18:166:21 | argv | argv |
22-
| argvLocal.c:168:24:168:26 | i10 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:166:18:166:21 | argv | argv |
21+
| argvLocal.c:150:9:150:10 | i8 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:149:11:149:14 | argv | argv |
22+
| argvLocal.c:151:15:151:16 | i8 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:149:11:149:14 | argv | argv |
23+
| argvLocal.c:157:9:157:10 | i9 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:156:23:156:26 | argv | argv |
24+
| argvLocal.c:158:15:158:16 | i9 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:156:23:156:26 | argv | argv |
25+
| argvLocal.c:164:9:164:11 | i91 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:163:22:163:25 | argv | argv |
26+
| argvLocal.c:165:15:165:17 | i91 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:163:22:163:25 | argv | argv |
27+
| argvLocal.c:169:18:169:20 | i10 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:168:18:168:21 | argv | argv |
28+
| argvLocal.c:170:24:170:26 | i10 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:168:18:168:21 | argv | argv |

0 commit comments

Comments
 (0)