File tree Expand file tree Collapse file tree 2 files changed +31
-0
lines changed
cpp/ql/test/query-tests/Security/CWE/CWE-120/semmle/tests Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Original file line number Diff line number Diff line change 14
14
| tests.c:120:3:120:9 | call to sprintf | This 'call to sprintf' operation requires 17 bytes but the destination is only 1 bytes. |
15
15
| tests.c:121:3:121:9 | call to sprintf | This 'call to sprintf' operation requires 17 bytes but the destination is only 16 bytes. |
16
16
| tests.c:136:2:136:8 | call to sprintf | This 'call to sprintf' operation requires 11 bytes but the destination is only 10 bytes. |
17
+ | tests.c:178:2:178:8 | call to sprintf | This 'call to sprintf' operation requires 9 bytes but the destination is only 2 bytes. |
18
+ | tests.c:179:2:179:8 | call to sprintf | This 'call to sprintf' operation requires 9 bytes but the destination is only 3 bytes. |
19
+ | tests.c:180:2:180:8 | call to sprintf | This 'call to sprintf' operation requires 9 bytes but the destination is only 5 bytes. |
20
+ | tests.c:182:3:182:9 | call to sprintf | This 'call to sprintf' operation requires 9 bytes but the destination is only 2 bytes. |
21
+ | tests.c:186:3:186:9 | call to sprintf | This 'call to sprintf' operation requires 9 bytes but the destination is only 2 bytes. |
22
+ | tests.c:189:3:189:9 | call to sprintf | This 'call to sprintf' operation requires 9 bytes but the destination is only 2 bytes. |
23
+ | tests.c:193:3:193:9 | call to sprintf | This 'call to sprintf' operation requires 9 bytes but the destination is only 5 bytes. |
17
24
| unions.c:26:2:26:7 | call to strcpy | This 'call to strcpy' operation requires 21 bytes but the destination is only 16 bytes. |
18
25
| unions.c:27:2:27:7 | call to strcpy | This 'call to strcpy' operation requires 21 bytes but the destination is only 15 bytes. |
19
26
| unions.c:27:2:27:7 | call to strcpy | This 'call to strcpy' operation requires 21 bytes but the destination is only 16 bytes. |
Original file line number Diff line number Diff line change @@ -169,3 +169,27 @@ void testVarSizeStruct()
169
169
170
170
snprintf (s -> data , 10 , "abcdefghijklmnopqrstuvwxyz" ); // GOOD
171
171
}
172
+
173
+ void tesHexBounds (int x ) {
174
+ char buffer2 [2 ];
175
+ char buffer3 [3 ];
176
+ char buffer5 [5 ];
177
+
178
+ sprintf (buffer2 , "%x" , 1 ); // GOOD [FALSE POSITIVE]
179
+ sprintf (buffer3 , "%x" , 16 ); // GOOD [FALSE POSITIVE]
180
+ sprintf (buffer5 , "%x" , (unsigned short )x ); // GOOD: bounded by conversion [FALSE POSITIVE]
181
+ if (x < 16 && x > 0 ) {
182
+ sprintf (buffer2 , "%x" , x ); // GOOD: bounded by check [FALSE POSITIVE]
183
+ }
184
+
185
+ if (x < 16 ) {
186
+ sprintf (buffer2 , "%x" , x ); // BAD: negative values
187
+ }
188
+ if (x <= 16 && x > 0 ) {
189
+ sprintf (buffer2 , "%x" , x ); // BAD: bound too loose
190
+ }
191
+
192
+ if (x < 0x10000 && x > 0 ) {
193
+ sprintf (buffer5 , "%x" , x ); // GOOD: bounded by check [FALSE POSITIVE]
194
+ }
195
+ }
You can’t perform that action at this time.
0 commit comments