PLSysSec / PLSysSec/cargo-scan

Updated roadmap for closures and fn pointers

Open
#34 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

roadmap-v1
Dominant language
Rust
Stars
47
Forks
7
PR merge metrics
No merged PRs in 30d

Description

New roadmap for closures and function pointers. Replaces #30

For v0:

  • add two types of unsafe effect to our effect model: ClosureCreation and FnPointerCreation
  • in scanner.rs, whenever a closure or function pointer is created, add this to the list of effects associated with that function that need to be audited.

For v1, the plan is probably something like the following:

  • add closures to the call graph
  • for effects in a closure, we need a new audit model: effects can be caller-checked, creator-checked, safe, or unsafe.
  • for each closure variable or function pointer variable, track which possible closures/function pointers it might refer to (an overapproximation). If we don't have enough information to identify, could add an UnsafeCall effect to track this.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading scanner.rs and the existing effect model, then compare the completed v0 checklist with the proposed v1 work. The issue describes adding closures to the call graph, tracking possible closure or function-pointer targets, and defining a new audit model, but it does not specify a bounded implementation task or clear completion test.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
security, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.