mirror of
https://github.com/github/codeql.git
synced 2025-12-21 11:16:30 +01:00
CPP: Speed up ExistsAnyFlowConfig.
This commit is contained in:
@@ -13,7 +13,9 @@ import semmle.code.cpp.security.boostorg.asio.protocols
|
|||||||
class ExistsAnyFlowConfig extends DataFlow::Configuration {
|
class ExistsAnyFlowConfig extends DataFlow::Configuration {
|
||||||
ExistsAnyFlowConfig() { this = "ExistsAnyFlowConfig" }
|
ExistsAnyFlowConfig() { this = "ExistsAnyFlowConfig" }
|
||||||
|
|
||||||
override predicate isSource(DataFlow::Node source) { any() }
|
override predicate isSource(DataFlow::Node source) {
|
||||||
|
source.asExpr() instanceof ConstructorCall
|
||||||
|
}
|
||||||
|
|
||||||
override predicate isSink(DataFlow::Node sink) { any() }
|
override predicate isSink(DataFlow::Node sink) { any() }
|
||||||
}
|
}
|
||||||
@@ -21,12 +23,12 @@ class ExistsAnyFlowConfig extends DataFlow::Configuration {
|
|||||||
bindingset[flag]
|
bindingset[flag]
|
||||||
predicate isOptionSet(ConstructorCall cc, int flag, FunctionCall fcSetOptions) {
|
predicate isOptionSet(ConstructorCall cc, int flag, FunctionCall fcSetOptions) {
|
||||||
exists(
|
exists(
|
||||||
BoostorgAsio::SslContextFlowsToSetOptionConfig config, ExistsAnyFlowConfig testConfig,
|
BoostorgAsio::SslContextFlowsToSetOptionConfig config, ExistsAnyFlowConfig anyFlowConfig,
|
||||||
Expr optionsSink
|
Expr optionsSink
|
||||||
|
|
|
|
||||||
config.hasFlow(DataFlow::exprNode(cc), DataFlow::exprNode(optionsSink)) and
|
config.hasFlow(DataFlow::exprNode(cc), DataFlow::exprNode(optionsSink)) and
|
||||||
exists(VariableAccess contextSetOptions |
|
exists(VariableAccess contextSetOptions |
|
||||||
testConfig.hasFlow(DataFlow::exprNode(cc), DataFlow::exprNode(contextSetOptions)) and
|
anyFlowConfig.hasFlow(DataFlow::exprNode(cc), DataFlow::exprNode(contextSetOptions)) and
|
||||||
exists(BoostorgAsio::SslSetOptionsFunction f | f.getACallToThisFunction() = fcSetOptions |
|
exists(BoostorgAsio::SslSetOptionsFunction f | f.getACallToThisFunction() = fcSetOptions |
|
||||||
contextSetOptions = fcSetOptions.getQualifier() and
|
contextSetOptions = fcSetOptions.getQualifier() and
|
||||||
forall(
|
forall(
|
||||||
|
|||||||
Reference in New Issue
Block a user