diff options
| author | user <user@clank> | 2026-07-11 10:59:48 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-07-11 10:59:48 +0200 |
| commit | 2c86330705569805c5d201113a569c9e03c0214a (patch) | |
| tree | 4be70a40c201206f4e6286742af5c6ca2ebb1c78 /server/patch_server.py | |
| parent | drive pc: render pseudocode in the TUI, not just the driver (diff) | |
| download | ida-tui-2c86330705569805c5d201113a569c9e03c0214a.tar.gz ida-tui-2c86330705569805c5d201113a569c9e03c0214a.tar.xz ida-tui-2c86330705569805c5d201113a569c9e03c0214a.zip | |
fix: don't hang drive pc on undecompilable functions
toggle_view's settle predicate (lambda: app._active != before) never
fired when tabbing toward pseudocode on a function Hex-Rays can't
decompile: App._apply_decomp snaps the view back to disasm, so _active
returns to its prior value -> full 20s settle timeout (x2 in _show_decomp,
~40s for drive pc). Recognize the decomp-failed fallback as settled.
Also harden two amplifiers surfaced by the same case:
- rpcclient: the CLI socket had no read timeout and would block forever
on any server slowness; add a bounded settimeout (IDATUI_RPC_TIMEOUT,
default 90s) with a clear error.
- domain.decompile: pass a bounded 15s timeout and cache failures, so a
failing decompile can't sit at the 30s client default or be re-run by
transport retries.
Diffstat (limited to 'server/patch_server.py')
0 files changed, 0 insertions, 0 deletions
