Skip to content

cpp: Model BlazingMQ bmqa message and property taint flow - #22820

Merged
geoffw0 merged 7 commits into
mainfrom
copilot/bmqa-models-merge-main
Oct 15, 2026
Merged

geoffw0 merged 7 commits into
mainfrom
copilot/bmqa-models-merge-main

Conversation

@geoffw0

@geoffw0 geoffw0 commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

I had Copilot create this PR, a clone of #22538 but with the merge conflicts fixed (update: and a couple of Copilot suggestions accepted). I have reviewed and am happy, I'm just looking for approval from another person.

--- Copilot said ---

Supersedes #22538 (original work by @kumarak; contributor's commit preserved), with a merge of latest main on top.

The only conflicts were in the generated cpp/ql/test/library-tests/dataflow/external-models/{flow,steps}.expected files; these were regenerated. external-models and taint-tests pass.

kumarak and others added 2 commits September 9, 2026 19:04
Add flow summaries for BloombergLP::bmqa: Message payload and
properties, MessageProperties getters/setters, the property iterator,
and the MessageEvent -> MessageIterator -> Message chain. Scalar
property getters are deliberately not modelled.
Resolved conflicts in external-models flow.expected and steps.expected
by regenerating them against latest main.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 14, 2026 13:11
@geoffw0
geoffw0 requested a review from a team as a code owner October 14, 2026 13:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Chained uses of the Message&-returning setters currently lose taint flow through the returned reference.

2 open findings
What changed in this PR

Adds C++ taint-flow summaries for the BlazingMQ bmqa message and property APIs.

Changes:

  • Models payload, property, iterator, copy, and serialization flows.
  • Adds comprehensive external-model tests and regenerated expectations.
  • Adds a library change note.
File Description
cpp/​ql/​lib/​ext/​bmqa.model.yml Defines BlazingMQ flow summaries.
cpp/​ql/​test/​library-tests/​dataflow/​external-models/​bmqa.cpp Exercises modeled API flows.
cpp/​ql/​test/​library-tests/​dataflow/​external-models/​flow.expected Updates generated flow expectations.
cpp/​ql/​test/​library-tests/​dataflow/​external-models/​steps.expected Updates generated summary-step expectations.
cpp/​ql/​test/​library-tests/​dataflow/​external-models/​validatemodels.expected Updates model-validation expectations.
cpp/​ql/​test/​library-tests/​dataflow/​taint-tests/​test_mad-signatures.expected Updates generated signature expectations.
cpp/​ql/​lib/​change-notes/​2026-09-09-bmqa-models.md Documents the analysis improvement.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread cpp/ql/lib/ext/bmqa.model.yml
Comment thread cpp/ql/lib/ext/bmqa.model.yml
@owen-mc

owen-mc commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

I was going to rubber-stamp this for you, but there seems to be a genuine db-check failure on cpp/ql/test/library-tests/dataflow/external-models that you might want to look into first.

Accept Copilot suggestions.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@geoffw0

geoffw0 commented Oct 14, 2026

Copy link
Copy Markdown
Contributor Author

I was going to rubber-stamp this for you, but there seems to be a genuine db-check failure on cpp/ql/test/library-tests/dataflow/external-models that you might want to look into first.

I've also accepted a couple of Copilot suggestions now, which may affect the .expected files. Will fix shortly...

Comment thread cpp/ql/test/library-tests/dataflow/external-models/bal.cpp Outdated
@geoffw0

geoffw0 commented Oct 15, 2026

Copy link
Copy Markdown
Contributor Author

Fixed the DBCheck error. The issue was conflicting definitions with another test file in the same directory. Unfortunately the diff is harder to read now, but I kept the commit-by-commit view fairly clean.

@geoffw0

geoffw0 commented Oct 15, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the reviews.

@geoffw0
geoffw0 merged commit 35510a5 into main Oct 15, 2026
17 checks passed
@geoffw0
geoffw0 deleted the copilot/bmqa-models-merge-main branch October 15, 2026 10:43
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.

5 participants