-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
C++: Rewrite
cpp/uncontrolled-process-operation
to not use `Default…
…TaintTracking`
- Loading branch information
Showing
3 changed files
with
75 additions
and
132 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
23 changes: 6 additions & 17 deletions
23
...ity/CWE/CWE-114/SAMATE/UncontrolledProcessOperation/UncontrolledProcessOperation.expected
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,12 @@ | ||
edges | ||
| test.cpp:37:73:37:76 | data | test.cpp:43:32:43:35 | data | | ||
| test.cpp:37:73:37:76 | data | test.cpp:43:32:43:35 | data | | ||
| test.cpp:37:73:37:76 | data indirection | test.cpp:43:32:43:35 | data | | ||
| test.cpp:37:73:37:76 | data indirection | test.cpp:43:32:43:35 | data | | ||
| test.cpp:64:30:64:35 | call to getenv | test.cpp:73:24:73:27 | data | | ||
| test.cpp:64:30:64:35 | call to getenv | test.cpp:73:24:73:27 | data | | ||
| test.cpp:64:30:64:35 | call to getenv | test.cpp:73:24:73:27 | data indirection | | ||
| test.cpp:64:30:64:35 | call to getenv | test.cpp:73:24:73:27 | data indirection | | ||
| test.cpp:73:24:73:27 | data | test.cpp:37:73:37:76 | data | | ||
| test.cpp:37:73:37:76 | data indirection | test.cpp:43:32:43:35 | data indirection | | ||
| test.cpp:64:30:64:35 | call to getenv indirection | test.cpp:73:24:73:27 | data indirection | | ||
| test.cpp:73:24:73:27 | data indirection | test.cpp:37:73:37:76 | data indirection | | ||
subpaths | ||
nodes | ||
| test.cpp:37:73:37:76 | data | semmle.label | data | | ||
| test.cpp:37:73:37:76 | data indirection | semmle.label | data indirection | | ||
| test.cpp:43:32:43:35 | data | semmle.label | data | | ||
| test.cpp:43:32:43:35 | data | semmle.label | data | | ||
| test.cpp:64:30:64:35 | call to getenv | semmle.label | call to getenv | | ||
| test.cpp:64:30:64:35 | call to getenv | semmle.label | call to getenv | | ||
| test.cpp:73:24:73:27 | data | semmle.label | data | | ||
| test.cpp:43:32:43:35 | data indirection | semmle.label | data indirection | | ||
| test.cpp:64:30:64:35 | call to getenv indirection | semmle.label | call to getenv indirection | | ||
| test.cpp:73:24:73:27 | data indirection | semmle.label | data indirection | | ||
subpaths | ||
#select | ||
| test.cpp:43:32:43:35 | data | test.cpp:64:30:64:35 | call to getenv | test.cpp:43:32:43:35 | data | The value of this argument may come from $@ and is being passed to LoadLibraryA. | test.cpp:64:30:64:35 | call to getenv | call to getenv | | ||
| test.cpp:43:32:43:35 | data indirection | test.cpp:64:30:64:35 | call to getenv indirection | test.cpp:43:32:43:35 | data indirection | The value of this argument may come from $@ and is being passed to LoadLibraryA. | test.cpp:64:30:64:35 | call to getenv indirection | call to getenv indirection | |
146 changes: 41 additions & 105 deletions
146
...ity/CWE/CWE-114/semmle/UncontrolledProcessOperation/UncontrolledProcessOperation.expected
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,112 +1,48 @@ | ||
edges | ||
| test.cpp:24:30:24:36 | command | test.cpp:26:10:26:16 | command | | ||
| test.cpp:24:30:24:36 | command | test.cpp:26:10:26:16 | command | | ||
| test.cpp:29:30:29:36 | command | test.cpp:31:10:31:16 | command | | ||
| test.cpp:29:30:29:36 | command | test.cpp:31:10:31:16 | command | | ||
| test.cpp:42:18:42:23 | call to getenv | test.cpp:24:30:24:36 | command | | ||
| test.cpp:42:18:42:34 | call to getenv | test.cpp:24:30:24:36 | command | | ||
| test.cpp:43:18:43:23 | call to getenv | test.cpp:29:30:29:36 | command | | ||
| test.cpp:43:18:43:34 | call to getenv | test.cpp:29:30:29:36 | command | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:62:10:62:15 | buffer | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:62:10:62:15 | buffer | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:62:10:62:15 | buffer | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:62:10:62:15 | buffer | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:63:10:63:13 | data | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:63:10:63:13 | data | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:63:10:63:13 | data | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:63:10:63:13 | data | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:65:10:65:14 | data2 | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:65:10:65:14 | data2 | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:65:10:65:14 | data2 | | ||
| test.cpp:56:12:56:17 | buffer | test.cpp:65:10:65:14 | data2 | | ||
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:62:10:62:15 | buffer | | ||
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:62:10:62:15 | buffer | | ||
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:63:10:63:13 | data | | ||
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:63:10:63:13 | data | | ||
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | dataref | | ||
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | dataref | | ||
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | dataref | | ||
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:65:10:65:14 | data2 | | ||
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:65:10:65:14 | data2 | | ||
| test.cpp:76:12:76:17 | buffer | test.cpp:78:10:78:15 | buffer | | ||
| test.cpp:76:12:76:17 | buffer | test.cpp:78:10:78:15 | buffer | | ||
| test.cpp:76:12:76:17 | buffer | test.cpp:78:10:78:15 | buffer | | ||
| test.cpp:76:12:76:17 | buffer | test.cpp:78:10:78:15 | buffer | | ||
| test.cpp:76:12:76:17 | fgets output argument | test.cpp:78:10:78:15 | buffer | | ||
| test.cpp:76:12:76:17 | fgets output argument | test.cpp:78:10:78:15 | buffer | | ||
| test.cpp:98:17:98:22 | buffer | test.cpp:99:15:99:20 | buffer | | ||
| test.cpp:98:17:98:22 | buffer | test.cpp:99:15:99:20 | buffer | | ||
| test.cpp:98:17:98:22 | buffer | test.cpp:99:15:99:20 | buffer | | ||
| test.cpp:98:17:98:22 | buffer | test.cpp:99:15:99:20 | buffer | | ||
| test.cpp:98:17:98:22 | recv output argument | test.cpp:99:15:99:20 | buffer | | ||
| test.cpp:98:17:98:22 | recv output argument | test.cpp:99:15:99:20 | buffer | | ||
| test.cpp:106:17:106:22 | buffer | test.cpp:107:15:107:20 | buffer | | ||
| test.cpp:106:17:106:22 | buffer | test.cpp:107:15:107:20 | buffer | | ||
| test.cpp:106:17:106:22 | buffer | test.cpp:107:15:107:20 | buffer | | ||
| test.cpp:106:17:106:22 | buffer | test.cpp:107:15:107:20 | buffer | | ||
| test.cpp:106:17:106:22 | recv output argument | test.cpp:107:15:107:20 | buffer | | ||
| test.cpp:106:17:106:22 | recv output argument | test.cpp:107:15:107:20 | buffer | | ||
| test.cpp:113:8:113:12 | call to fgets | test.cpp:114:9:114:11 | ptr | | ||
| test.cpp:113:8:113:12 | call to fgets | test.cpp:114:9:114:11 | ptr | | ||
| test.cpp:113:8:113:12 | call to fgets | test.cpp:114:9:114:11 | ptr | | ||
| test.cpp:113:8:113:12 | call to fgets | test.cpp:114:9:114:11 | ptr | | ||
subpaths | ||
| test.cpp:24:30:24:36 | command indirection | test.cpp:26:10:26:16 | command indirection | | ||
| test.cpp:29:30:29:36 | command indirection | test.cpp:31:10:31:16 | command indirection | | ||
| test.cpp:42:18:42:34 | call to getenv indirection | test.cpp:24:30:24:36 | command indirection | | ||
| test.cpp:43:18:43:34 | call to getenv indirection | test.cpp:29:30:29:36 | command indirection | | ||
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:62:10:62:15 | buffer indirection | | ||
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:63:10:63:13 | data indirection | | ||
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | (reference dereference) indirection | | ||
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | dataref indirection | | ||
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:65:10:65:14 | data2 indirection | | ||
| test.cpp:76:12:76:17 | fgets output argument | test.cpp:78:10:78:15 | buffer indirection | | ||
| test.cpp:98:17:98:22 | recv output argument | test.cpp:99:15:99:20 | buffer indirection | | ||
| test.cpp:106:17:106:22 | recv output argument | test.cpp:107:15:107:20 | buffer indirection | | ||
| test.cpp:113:8:113:12 | call to fgets indirection | test.cpp:114:9:114:11 | ptr indirection | | ||
nodes | ||
| test.cpp:24:30:24:36 | command | semmle.label | command | | ||
| test.cpp:26:10:26:16 | command | semmle.label | command | | ||
| test.cpp:26:10:26:16 | command | semmle.label | command | | ||
| test.cpp:29:30:29:36 | command | semmle.label | command | | ||
| test.cpp:31:10:31:16 | command | semmle.label | command | | ||
| test.cpp:31:10:31:16 | command | semmle.label | command | | ||
| test.cpp:42:18:42:23 | call to getenv | semmle.label | call to getenv | | ||
| test.cpp:42:18:42:34 | call to getenv | semmle.label | call to getenv | | ||
| test.cpp:43:18:43:23 | call to getenv | semmle.label | call to getenv | | ||
| test.cpp:43:18:43:34 | call to getenv | semmle.label | call to getenv | | ||
| test.cpp:56:12:56:17 | buffer | semmle.label | buffer | | ||
| test.cpp:56:12:56:17 | buffer | semmle.label | buffer | | ||
| test.cpp:24:30:24:36 | command indirection | semmle.label | command indirection | | ||
| test.cpp:26:10:26:16 | command indirection | semmle.label | command indirection | | ||
| test.cpp:29:30:29:36 | command indirection | semmle.label | command indirection | | ||
| test.cpp:31:10:31:16 | command indirection | semmle.label | command indirection | | ||
| test.cpp:42:18:42:34 | call to getenv indirection | semmle.label | call to getenv indirection | | ||
| test.cpp:43:18:43:34 | call to getenv indirection | semmle.label | call to getenv indirection | | ||
| test.cpp:56:12:56:17 | fgets output argument | semmle.label | fgets output argument | | ||
| test.cpp:62:10:62:15 | buffer | semmle.label | buffer | | ||
| test.cpp:62:10:62:15 | buffer | semmle.label | buffer | | ||
| test.cpp:63:10:63:13 | data | semmle.label | data | | ||
| test.cpp:63:10:63:13 | data | semmle.label | data | | ||
| test.cpp:64:10:64:16 | dataref | semmle.label | dataref | | ||
| test.cpp:64:10:64:16 | dataref | semmle.label | dataref | | ||
| test.cpp:64:10:64:16 | dataref | semmle.label | dataref | | ||
| test.cpp:65:10:65:14 | data2 | semmle.label | data2 | | ||
| test.cpp:65:10:65:14 | data2 | semmle.label | data2 | | ||
| test.cpp:76:12:76:17 | buffer | semmle.label | buffer | | ||
| test.cpp:76:12:76:17 | buffer | semmle.label | buffer | | ||
| test.cpp:62:10:62:15 | buffer indirection | semmle.label | buffer indirection | | ||
| test.cpp:63:10:63:13 | data indirection | semmle.label | data indirection | | ||
| test.cpp:64:10:64:16 | (reference dereference) indirection | semmle.label | (reference dereference) indirection | | ||
| test.cpp:64:10:64:16 | dataref indirection | semmle.label | dataref indirection | | ||
| test.cpp:65:10:65:14 | data2 indirection | semmle.label | data2 indirection | | ||
| test.cpp:76:12:76:17 | fgets output argument | semmle.label | fgets output argument | | ||
| test.cpp:78:10:78:15 | buffer | semmle.label | buffer | | ||
| test.cpp:78:10:78:15 | buffer | semmle.label | buffer | | ||
| test.cpp:98:17:98:22 | buffer | semmle.label | buffer | | ||
| test.cpp:98:17:98:22 | buffer | semmle.label | buffer | | ||
| test.cpp:78:10:78:15 | buffer indirection | semmle.label | buffer indirection | | ||
| test.cpp:98:17:98:22 | recv output argument | semmle.label | recv output argument | | ||
| test.cpp:99:15:99:20 | buffer | semmle.label | buffer | | ||
| test.cpp:99:15:99:20 | buffer | semmle.label | buffer | | ||
| test.cpp:106:17:106:22 | buffer | semmle.label | buffer | | ||
| test.cpp:106:17:106:22 | buffer | semmle.label | buffer | | ||
| test.cpp:99:15:99:20 | buffer indirection | semmle.label | buffer indirection | | ||
| test.cpp:106:17:106:22 | recv output argument | semmle.label | recv output argument | | ||
| test.cpp:107:15:107:20 | buffer | semmle.label | buffer | | ||
| test.cpp:107:15:107:20 | buffer | semmle.label | buffer | | ||
| test.cpp:113:8:113:12 | call to fgets | semmle.label | call to fgets | | ||
| test.cpp:113:8:113:12 | call to fgets | semmle.label | call to fgets | | ||
| test.cpp:114:9:114:11 | ptr | semmle.label | ptr | | ||
| test.cpp:114:9:114:11 | ptr | semmle.label | ptr | | ||
| test.cpp:107:15:107:20 | buffer indirection | semmle.label | buffer indirection | | ||
| test.cpp:113:8:113:12 | call to fgets indirection | semmle.label | call to fgets indirection | | ||
| test.cpp:114:9:114:11 | ptr indirection | semmle.label | ptr indirection | | ||
subpaths | ||
#select | ||
| test.cpp:26:10:26:16 | command | test.cpp:42:18:42:23 | call to getenv | test.cpp:26:10:26:16 | command | The value of this argument may come from $@ and is being passed to system. | test.cpp:42:18:42:23 | call to getenv | call to getenv | | ||
| test.cpp:31:10:31:16 | command | test.cpp:43:18:43:23 | call to getenv | test.cpp:31:10:31:16 | command | The value of this argument may come from $@ and is being passed to system. | test.cpp:43:18:43:23 | call to getenv | call to getenv | | ||
| test.cpp:62:10:62:15 | buffer | test.cpp:56:12:56:17 | buffer | test.cpp:62:10:62:15 | buffer | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | buffer | buffer | | ||
| test.cpp:63:10:63:13 | data | test.cpp:56:12:56:17 | buffer | test.cpp:63:10:63:13 | data | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | buffer | buffer | | ||
| test.cpp:64:10:64:16 | dataref | test.cpp:56:12:56:17 | buffer | test.cpp:64:10:64:16 | dataref | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | buffer | buffer | | ||
| test.cpp:65:10:65:14 | data2 | test.cpp:56:12:56:17 | buffer | test.cpp:65:10:65:14 | data2 | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | buffer | buffer | | ||
| test.cpp:78:10:78:15 | buffer | test.cpp:76:12:76:17 | buffer | test.cpp:78:10:78:15 | buffer | The value of this argument may come from $@ and is being passed to system. | test.cpp:76:12:76:17 | buffer | buffer | | ||
| test.cpp:99:15:99:20 | buffer | test.cpp:98:17:98:22 | buffer | test.cpp:99:15:99:20 | buffer | The value of this argument may come from $@ and is being passed to LoadLibrary. | test.cpp:98:17:98:22 | buffer | buffer | | ||
| test.cpp:107:15:107:20 | buffer | test.cpp:106:17:106:22 | buffer | test.cpp:107:15:107:20 | buffer | The value of this argument may come from $@ and is being passed to LoadLibrary. | test.cpp:106:17:106:22 | buffer | buffer | | ||
| test.cpp:114:9:114:11 | ptr | test.cpp:113:8:113:12 | call to fgets | test.cpp:114:9:114:11 | ptr | The value of this argument may come from $@ and is being passed to system. | test.cpp:113:8:113:12 | call to fgets | call to fgets | | ||
| test.cpp:26:10:26:16 | command indirection | test.cpp:42:18:42:34 | call to getenv indirection | test.cpp:26:10:26:16 | command indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:42:18:42:34 | call to getenv indirection | call to getenv indirection | | ||
| test.cpp:31:10:31:16 | command indirection | test.cpp:43:18:43:34 | call to getenv indirection | test.cpp:31:10:31:16 | command indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:43:18:43:34 | call to getenv indirection | call to getenv indirection | | ||
| test.cpp:62:10:62:15 | buffer indirection | test.cpp:56:12:56:17 | fgets output argument | test.cpp:62:10:62:15 | buffer indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | fgets output argument | fgets output argument | | ||
| test.cpp:63:10:63:13 | data indirection | test.cpp:56:12:56:17 | fgets output argument | test.cpp:63:10:63:13 | data indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | fgets output argument | fgets output argument | | ||
| test.cpp:64:10:64:16 | (reference dereference) indirection | test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | (reference dereference) indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | fgets output argument | fgets output argument | | ||
| test.cpp:64:10:64:16 | dataref indirection | test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | dataref indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | fgets output argument | fgets output argument | | ||
| test.cpp:65:10:65:14 | data2 indirection | test.cpp:56:12:56:17 | fgets output argument | test.cpp:65:10:65:14 | data2 indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | fgets output argument | fgets output argument | | ||
| test.cpp:78:10:78:15 | buffer indirection | test.cpp:76:12:76:17 | fgets output argument | test.cpp:78:10:78:15 | buffer indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:76:12:76:17 | fgets output argument | fgets output argument | | ||
| test.cpp:99:15:99:20 | buffer indirection | test.cpp:98:17:98:22 | recv output argument | test.cpp:99:15:99:20 | buffer indirection | The value of this argument may come from $@ and is being passed to LoadLibrary. | test.cpp:98:17:98:22 | recv output argument | recv output argument | | ||
| test.cpp:107:15:107:20 | buffer indirection | test.cpp:106:17:106:22 | recv output argument | test.cpp:107:15:107:20 | buffer indirection | The value of this argument may come from $@ and is being passed to LoadLibrary. | test.cpp:106:17:106:22 | recv output argument | recv output argument | | ||
| test.cpp:114:9:114:11 | ptr indirection | test.cpp:113:8:113:12 | call to fgets indirection | test.cpp:114:9:114:11 | ptr indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:113:8:113:12 | call to fgets indirection | call to fgets indirection | |