From e86ce8feeda3620f73de84c44d4345222368c6bb Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Mon, 16 Mar 2026 22:14:38 +0000 Subject: [PATCH] Instantiate flow barriers from MaD --- .../rust/dataflow/internal/ModelsAsData.qll | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll index ada06fafb4b..943a32e4448 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll @@ -44,6 +44,7 @@ */ private import rust +private import codeql.rust.dataflow.FlowBarrier private import codeql.rust.dataflow.FlowSummary private import codeql.rust.dataflow.FlowSource private import codeql.rust.dataflow.FlowSink @@ -239,6 +240,22 @@ private class FlowSinkFromModel extends FlowSink::Range { } } +private class FlowBarrierFromModel extends FlowBarrier::Range { + private string path; + + FlowBarrierFromModel() { + barrierModel(path, _, _, _, _) and + this.callResolvesTo(path) + } + + override predicate isBarrier(string output, string kind, Provenance provenance, string model) { + exists(QlBuiltins::ExtensionId madId | + barrierModel(path, output, kind, provenance, madId) and + model = "MaD:" + madId.toString() + ) + } +} + private module Debug { private import FlowSummaryImpl private import Private