Skip to content

Commit 194d9a9

Browse files
committed
[DIFF-INFORMED] C++: UnsafeCreateProcessCall
1 parent 39b430a commit 194d9a9

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

cpp/ql/src/Security/CWE/CWE-428/UnsafeCreateProcessCall.ql

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,16 @@ module NullAppNameCreateProcessFunctionConfig implements DataFlow::ConfigSig {
6262
val = call.getArgument(call.getApplicationNameArgumentId())
6363
)
6464
}
65+
66+
predicate observeDiffInformedIncrementalMode() { any() }
67+
68+
Location getASelectedSourceLocation(DataFlow::Node source) { none() }
69+
70+
Location getASelectedSinkLocation(DataFlow::Node sink) {
71+
exists(CreateProcessFunctionCall call | result = call.getLocation() |
72+
sink.asExpr() = call.getArgument(call.getApplicationNameArgumentId())
73+
)
74+
}
6575
}
6676

6777
module NullAppNameCreateProcessFunction = DataFlow::Global<NullAppNameCreateProcessFunctionConfig>;
@@ -82,6 +92,16 @@ module QuotedCommandInCreateProcessFunctionConfig implements DataFlow::ConfigSig
8292
val = call.getArgument(call.getCommandLineArgumentId())
8393
)
8494
}
95+
96+
predicate observeDiffInformedIncrementalMode() { any() }
97+
98+
Location getASelectedSourceLocation(DataFlow::Node source) { none() }
99+
100+
Location getASelectedSinkLocation(DataFlow::Node sink) {
101+
exists(CreateProcessFunctionCall call | result = call.getLocation() |
102+
sink.asExpr() = call.getArgument(call.getCommandLineArgumentId())
103+
)
104+
}
85105
}
86106

87107
module QuotedCommandInCreateProcessFunction =

0 commit comments

Comments
 (0)