Skip to content

Commit e86ce8f

Browse files
committed
Instantiate flow barriers from MaD
1 parent d3177b9 commit e86ce8f

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
*/
4545

4646
private import rust
47+
private import codeql.rust.dataflow.FlowBarrier
4748
private import codeql.rust.dataflow.FlowSummary
4849
private import codeql.rust.dataflow.FlowSource
4950
private import codeql.rust.dataflow.FlowSink
@@ -239,6 +240,22 @@ private class FlowSinkFromModel extends FlowSink::Range {
239240
}
240241
}
241242

243+
private class FlowBarrierFromModel extends FlowBarrier::Range {
244+
private string path;
245+
246+
FlowBarrierFromModel() {
247+
barrierModel(path, _, _, _, _) and
248+
this.callResolvesTo(path)
249+
}
250+
251+
override predicate isBarrier(string output, string kind, Provenance provenance, string model) {
252+
exists(QlBuiltins::ExtensionId madId |
253+
barrierModel(path, output, kind, provenance, madId) and
254+
model = "MaD:" + madId.toString()
255+
)
256+
}
257+
}
258+
242259
private module Debug {
243260
private import FlowSummaryImpl
244261
private import Private

0 commit comments

Comments
 (0)