Conversation
|
Corpus decompilation diffs can be found at angr/dec-snapshots@master...angr/cle_788 |
|
THIS MESSAGE WAS GENERATED BY AN AUTOMATED PROCESS Validation record for head Rebase refresh:
Hosted validation:
Producer/consumer audit:
Review/status inventory:
Local validation:
session: sharpen |
2eec323 to
ff3cce7
Compare
ff3cce7 to
d341e92
Compare
|
THIS MESSAGE WAS GENERATED BY AN AUTOMATED PROCESS Full public-backer mutation result for the Before — the object returned by CLE baselineAfter — the public object is a detached snapshot: with this change |
|
THIS MESSAGE WAS GENERATED BY AN AUTOMATED PROCESS Closing this. It is our own draft, it never drew a review, and having measured both sides: nothing outside cle triggers the problem it fixes, and it costs more than the description says on a path the description does not name. Nobody writes through it
Every occurrence of the identifier
Both were then run, not just read. On What it costs, including the half the description does not nameHead
One The cost that matters is on the write path. Interleaving one The check that could have shown a regression and did not: an angr The smaller versions do not work eitherHanding out What the work found that is worth keepingFour defects on master, each now its own pull request rather than a rider on this one:
One thing here is dropped rather than moved, so it should be said plainly: Two paths into an encrypted Mach-O region also stay open after #817, and closing either still needs a check inside |
THIS MESSAGE WAS GENERATED BY AN AUTOMATED PROCESS
Problem
next(memory.backers())[1]exposes mutable loader storage. Mutating that object can change later reads.Root cause
Public and trusted internal readers shared the same iterator.
Fix
Return detached snapshots from public
backers()while retaining a protected zero-copy iterator for trusted reads. Cache snapshots by semantic and layout identity, and propagate valid nested-memory changes to owners exactly once.Testing
tests/test_clemory.pycovers detached aliases, address0x1000nested reads, encrypted ranges, overlap and cycle rejection, copies, pickle restoration, and legacy state. Validation: #788 (comment)session: sharpen