[GH-ISSUE #1339] [Bug] A dot in the TMPDIR path makes Ghidra abort, reported as a generic "retry once" failure #472

Closed
opened 2026-10-15 18:25:21 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @CassieFox23 on GitHub (Oct 9, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/1339

TL;DR: If TMPDIR has a folder starting with a dot in its path, Ghidra won't start, and REA only says "retry once" instead of giving the real reason.

Before submitting

  • I searched the open and closed issues for a related report.
  • I removed credentials, tokens, private paths, and sensitive target data.

Area

Native analysis or decompilation

Observed behavior

With TMPDIR=~/.cache/x/tmp, every Ghidra-backed command fails at once with execution_failure, failure_message: "Ghidra exited before bridge startup", and the remediation "Retry once; if it continues, run rea doctor". Retrying can't help.

Reproduction

TMPDIR=~/.cache/x/tmp rea analyze <any PE> --provider ghidra --format json (with GHIDRA_INSTALL_DIR and JAVA_HOME set). It fails within a few seconds.

Expected behavior

REA checks the project path before launching, or pulls Ghidra's error into the message, so the caller knows to change TMPDIR.

Impact and scope

Any setup whose temp dir sits under a dot folder (~/.cache, ~/.local). Ghidra provider only.

REA version

6.1.0

Runtime and platform

Node.js 22.22.2, Linux x86-64, Ghidra 12.1.4, Temurin JDK 21

Target and artifact context

60 MB x86-64 PE; the failure comes before import, so the target doesn't matter.

Interface

CLI

Earliest failure stage

Setup or provider admission

Relevant output or evidence

Ghidra's stdout in the error's diagnostics:

ERROR Abort due to Headless analyzer error: Path element starting with '.' is not permitted (HeadlessAnalyzer) java.lang.IllegalArgumentException: Path element starting with '.' is not permitted
	at ghidra.util.NamingUtilities.checkName(NamingUtilities.java:108)
	at ghidra.framework.protocol.ghidra.GhidraURL.checkValidProjectPath(GhidraURL.java:440)

Typed outcome or recovery expected

A typed configuration error naming the project path, instead of a retryable-sounding execution_failure.

Analysis or suspected cause

Source-derived: REA builds the Ghidra project root under os.tmpdir(), and Ghidra rejects any project path element that starts with ..

Additional context

No response

🤖 Generated with Claude Code (Opus 5.5) 🦊

Originally created by @CassieFox23 on GitHub (Oct 9, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/1339 **TL;DR:** If `TMPDIR` has a folder starting with a dot in its path, Ghidra won't start, and REA only says "retry once" instead of giving the real reason. ### Before submitting - [X] I searched the open and closed issues for a related report. - [X] I removed credentials, tokens, private paths, and sensitive target data. ### Area Native analysis or decompilation ### Observed behavior With `TMPDIR=~/.cache/x/tmp`, every Ghidra-backed command fails at once with `execution_failure`, `failure_message: "Ghidra exited before bridge startup"`, and the remediation "Retry once; if it continues, run `rea doctor`". Retrying can't help. ### Reproduction `TMPDIR=~/.cache/x/tmp rea analyze <any PE> --provider ghidra --format json` (with `GHIDRA_INSTALL_DIR` and `JAVA_HOME` set). It fails within a few seconds. ### Expected behavior REA checks the project path before launching, or pulls Ghidra's error into the message, so the caller knows to change `TMPDIR`. ### Impact and scope Any setup whose temp dir sits under a dot folder (`~/.cache`, `~/.local`). Ghidra provider only. ### REA version 6.1.0 ### Runtime and platform Node.js 22.22.2, Linux x86-64, Ghidra 12.1.4, Temurin JDK 21 ### Target and artifact context 60 MB x86-64 PE; the failure comes before import, so the target doesn't matter. ### Interface CLI ### Earliest failure stage Setup or provider admission ### Relevant output or evidence Ghidra's stdout in the error's diagnostics: ``` ERROR Abort due to Headless analyzer error: Path element starting with '.' is not permitted (HeadlessAnalyzer) java.lang.IllegalArgumentException: Path element starting with '.' is not permitted at ghidra.util.NamingUtilities.checkName(NamingUtilities.java:108) at ghidra.framework.protocol.ghidra.GhidraURL.checkValidProjectPath(GhidraURL.java:440) ``` ### Typed outcome or recovery expected A typed configuration error naming the project path, instead of a retryable-sounding `execution_failure`. ### Analysis or suspected cause Source-derived: REA builds the Ghidra project root under `os.tmpdir()`, and Ghidra rejects any project path element that starts with `.`. ### Additional context _No response_ 🤖 Generated with Claude Code (Opus 5.5) 🦊
bsakaguchi 2026-10-15 18:25:21 +00:00
Author
Owner

@CassieFox23 commented on GitHub (Oct 9, 2026):

TL;DR: This is a duplicate of #1219. #1297 fixed it in 6.2.0.

Duplicate of #1219, fixed by #1297 in 6.2.0.

🤖 Generated with Claude Code (Opus 5.5) 🦊

<!-- gh-comment-id:6085544127 --> @CassieFox23 commented on GitHub (Oct 9, 2026): **TL;DR:** This is a duplicate of #1219. #1297 fixed it in 6.2.0. Duplicate of #1219, fixed by #1297 in 6.2.0. 🤖 Generated with Claude Code (Opus 5.5) 🦊
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#472
No description provided.