Skip to content

Data flow: Use parameterized module to share code between pruning stages #8301

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 4 commits into from

Conversation

hvitved
Copy link
Contributor

@hvitved hvitved commented Mar 1, 2022

No description provided.

@hvitved hvitved force-pushed the dataflow/param-stages branch 3 times, most recently from ea8f3ba to 31e5693 Compare March 3, 2022 09:30
@hvitved hvitved force-pushed the dataflow/param-stages branch 2 times, most recently from e1c369c to 987b8c6 Compare March 28, 2022 11:54
@hvitved hvitved force-pushed the dataflow/param-stages branch 2 times, most recently from aa88421 to e2e4f26 Compare April 8, 2022 09:39
@hvitved hvitved force-pushed the dataflow/param-stages branch from e2e4f26 to a7e7cb4 Compare May 10, 2022 07:27
Copy link

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found 40 vulnerabilities.

* The corresponding paths are generated from the end-points and the graph
* included in the module `PathGraph`.
*/
predicate hasFlowPath(PathNode source, PathNode sink) { flowsTo(source, sink, _, _, this) }

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
* The corresponding paths are generated from the end-points and the graph
* included in the module `PathGraph`.
*/
predicate hasFlowPath(PathNode source, PathNode sink) { flowsTo(source, sink, _, _, this) }

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
*
* To use this in a `path-problem` query, import the module `PartialPathGraph`.
*/
final predicate hasPartialFlow(PartialPathNode source, PartialPathNode node, int dist) {

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
*
* To use this in a `path-problem` query, import the module `PartialPathGraph`.
*/
final predicate hasPartialFlow(PartialPathNode source, PartialPathNode node, int dist) {

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
* Note that reverse flow has slightly lower precision than the corresponding
* forward flow, as reverse flow disregards type pruning among other features.
*/
final predicate hasPartialFlowRev(PartialPathNode node, PartialPathNode sink, int dist) {

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
predicate prevStageReadStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config);

predicate prevStageStoreStepCand(
NodeEx node1, ApApprox ap1, TypedContent tc, NodeEx node2, DataFlowType contentType,

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::noResolve
// TODO: Use separate module once supported for all `prevStage` predicates
bindingset[node, state, config]
predicate prevStageRevFlow(
NodeEx node, FlowState state, boolean toReturn, ApApproxOption returnAp, ApApprox ap,

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::noResolve
// TODO: Use separate module once supported for all `prevStage` predicates
bindingset[node, state, config]
predicate prevStageRevFlow(
NodeEx node, FlowState state, boolean toReturn, ApApproxOption returnAp, ApApprox ap,

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::noResolve

class ApApprox = PrevStage::Ap;
predicate prevStageParameterMayFlowThrough(
ParamNodeEx p, DataFlowCallable c, ApApprox ap, Configuration config

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::noResolve
predicate prevStageReadStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config);

predicate prevStageStoreStepCand(
NodeEx node1, ApApprox ap1, TypedContent tc, NodeEx node2, DataFlowType contentType,

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::noResolve
Copy link

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found 55 vulnerabilities.

* The corresponding paths are generated from the end-points and the graph
* included in the module `PathGraph`.
*/
predicate hasFlowPath(PathNode source, PathNode sink) { flowsTo(source, sink, _, _, this) }

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
* The corresponding paths are generated from the end-points and the graph
* included in the module `PathGraph`.
*/
predicate hasFlowPath(PathNode source, PathNode sink) { flowsTo(source, sink, _, _, this) }

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
*
* To use this in a `path-problem` query, import the module `PartialPathGraph`.
*/
final predicate hasPartialFlow(PartialPathNode source, PartialPathNode node, int dist) {

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
*
* To use this in a `path-problem` query, import the module `PartialPathGraph`.
*/
final predicate hasPartialFlow(PartialPathNode source, PartialPathNode node, int dist) {

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
* Note that reverse flow has slightly lower precision than the corresponding
* forward flow, as reverse flow disregards type pruning among other features.
*/
final predicate hasPartialFlowRev(PartialPathNode node, PartialPathNode sink, int dist) {

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
* Note that reverse flow has slightly lower precision than the corresponding
* forward flow, as reverse flow disregards type pruning among other features.
*/
final predicate hasPartialFlowRev(PartialPathNode node, PartialPathNode sink, int dist) {

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::noResolve
* Note that reverse flow has slightly lower precision than the corresponding
* forward flow, as reverse flow disregards type pruning among other features.
*/
final predicate hasPartialFlowRev(PartialPathNode node, PartialPathNode sink, int dist) {

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::noResolve
// TODO: Use separate module once supported for all `prevStage` predicates
bindingset[node, state, config]
predicate prevStageRevFlow(
NodeEx node, FlowState state, boolean toReturn, ApApproxOption returnAp, ApApprox ap,

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::noResolve
// TODO: Use separate module once supported for all `prevStage` predicates
bindingset[node, state, config]
predicate prevStageRevFlow(
NodeEx node, FlowState state, boolean toReturn, ApApproxOption returnAp, ApApprox ap,

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::noResolve

class ApApprox = PrevStage::Ap;
predicate prevStageParameterMayFlowThrough(
ParamNodeEx p, DataFlowCallable c, ApApprox ap, Configuration config

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::noResolve
Copy link

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found 50 vulnerabilities.

* The corresponding paths are generated from the end-points and the graph
* included in the module `PathGraph`.
*/
predicate hasFlowPath(PathNode source, PathNode sink) { flowsTo(source, sink, _, _, this) }

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
* The corresponding paths are generated from the end-points and the graph
* included in the module `PathGraph`.
*/
predicate hasFlowPath(PathNode source, PathNode sink) { flowsTo(source, sink, _, _, this) }

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
*
* To use this in a `path-problem` query, import the module `PartialPathGraph`.
*/
final predicate hasPartialFlow(PartialPathNode source, PartialPathNode node, int dist) {

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
*
* To use this in a `path-problem` query, import the module `PartialPathGraph`.
*/
final predicate hasPartialFlow(PartialPathNode source, PartialPathNode node, int dist) {

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
* Note that reverse flow has slightly lower precision than the corresponding
* forward flow, as reverse flow disregards type pruning among other features.
*/
final predicate hasPartialFlowRev(PartialPathNode node, PartialPathNode sink, int dist) {

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
* Note that reverse flow has slightly lower precision than the corresponding
* forward flow, as reverse flow disregards type pruning among other features.
*/
final predicate hasPartialFlowRev(PartialPathNode node, PartialPathNode sink, int dist) {

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
// TODO: Use separate module once supported for all `prevStage` predicates
bindingset[node, state, config]
predicate prevStageRevFlow(
NodeEx node, FlowState state, boolean toReturn, ApApproxOption returnAp, ApApprox ap,

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
// TODO: Use separate module once supported for all `prevStage` predicates
bindingset[node, state, config]
predicate prevStageRevFlow(
NodeEx node, FlowState state, boolean toReturn, ApApproxOption returnAp, ApApprox ap,

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType

class ApApprox = PrevStage::Ap;
predicate prevStageParameterMayFlowThrough(
ParamNodeEx p, DataFlowCallable c, ApApprox ap, Configuration config

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
predicate prevStageReadStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config);

predicate prevStageStoreStepCand(
NodeEx node1, ApApprox ap1, TypedContent tc, NodeEx node2, DataFlowType contentType,

Check warning

Code scanning / CodeQL

Consistency predicate that should be empty

TypeConsistency::varDefNoType
@hvitved
Copy link
Contributor Author

hvitved commented Aug 8, 2022

Superseded by #9823.

@hvitved hvitved closed this Aug 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant