diff options
| author | blasty <blasty@local> | 2026-08-07 00:18:55 +0200 |
|---|---|---|
| committer | blasty <blasty@local> | 2026-08-07 00:18:55 +0200 |
| commit | c70acf6881c83d6de1f33022dc6210b93ed86f2e (patch) | |
| tree | 9b3f613e9d5bf5d82218050bdda5831cc923e782 /docs | |
| parent | worker_client: tests, and stop resurrecting a closed worker (diff) | |
| download | ida-tui-c70acf6881c83d6de1f33022dc6210b93ed86f2e.tar.gz ida-tui-c70acf6881c83d6de1f33022dc6210b93ed86f2e.tar.xz ida-tui-c70acf6881c83d6de1f33022dc6210b93ed86f2e.zip | |
launch: the sweep could delete the file it was asked to open
_sweep_locks removes the scratch IDA unpacks beside a .i64 (.id0/.id1/.id2/
.nam/.til) when an open fails, keyed on both the full name and the stem. It
never touched the .i64, which is the dangerous one everybody thinks of.
It did delete the input. '.til' is an unpacked-DB suffix AND the extension of an
IDA type library, so 'ida-tui mylib.til' swept its own argument out of
existence -- irreversibly, on a path that runs automatically. Same for anything
named *.id0/*.id1/*.id2/*.nam. Now the sweep skips whatever it was asked to
open, compared as an absolute path so a relative argument is covered too.
tests/test_launch.py pins the whole contract: what it takes, what it must never
take (the .i64, the input, the neighbours), and what it reports. Pure, in the
--fast tier. It is the right shape of test for code whose failure mode is
deleting the wrong file.
Also: _load_args parsed the base with bare int(), which raises on the
'0x8000000' string a project file writes. Unreachable from our own CLI (which
int()s first) but the asymmetry with project._as_addr was a trap, so both go
through the same parser now.
813 checks; --fast is 324 in 3.4s.
Diffstat (limited to 'docs')
0 files changed, 0 insertions, 0 deletions
