JS: Deprecate DataFlow::BarrierGuardNode

This commit is contained in:
Asger F
2024-12-02 13:09:53 +01:00
parent b3461989b1
commit 3f0d0e3a05
4 changed files with 22 additions and 11 deletions

View File

@@ -19,17 +19,20 @@ module TestConfig implements DataFlow::ConfigSig {
module TestFlow = DataFlow::Global<TestConfig>;
class SimpleBarrierGuardNode extends DataFlow::BarrierGuardNode, DataFlow::InvokeNode {
class SimpleBarrierGuardNode extends DataFlow::InvokeNode {
SimpleBarrierGuardNode() { this.getCalleeName() = "BARRIER" }
override predicate blocks(boolean outcome, Expr e) { this.blocksExpr(outcome, e) }
predicate blocksExpr(boolean outcome, Expr e) {
outcome = true and
e = this.getArgument(0).asExpr()
}
}
deprecated class SimpleBarrierGuardNodeLegacy extends DataFlow::BarrierGuardNode instanceof SimpleBarrierGuardNode
{
override predicate blocks(boolean outcome, Expr e) { super.blocksExpr(outcome, e) }
}
deprecated class LegacyConfig extends DataFlow::Configuration {
LegacyConfig() { this = "LegacyConfig" }
@@ -38,7 +41,7 @@ deprecated class LegacyConfig extends DataFlow::Configuration {
override predicate isSink(DataFlow::Node sink) { TestConfig::isSink(sink) }
override predicate isBarrierGuard(DataFlow::BarrierGuardNode guard) {
guard instanceof SimpleBarrierGuardNode
guard instanceof SimpleBarrierGuardNodeLegacy
}
}

View File

@@ -22,8 +22,9 @@ class BasicBarrierGuard extends DataFlow::CallNode {
}
}
deprecated class BasicBarrierGuardLegacy extends DataFlow::BarrierGuardNode, BasicBarrierGuard {
override predicate blocks(boolean outcome, Expr e) { this.blocksExpr(outcome, e) }
deprecated class BasicBarrierGuardLegacy extends DataFlow::BarrierGuardNode instanceof BasicBarrierGuard
{
override predicate blocks(boolean outcome, Expr e) { super.blocksExpr(outcome, e) }
}
deprecated class LegacyConfig extends DataFlow::Configuration {