nall: Retrieve executable path more reliably #1844
Merged
+10
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In a sandboxed Flatpak environment on Linux, the current
dladdr
strategy for retrieving the binary path seems to provide the bare executable nameares
fordli_fname
rather than the binary's full location. There don't seem to be any guarantees about what sort of path (relative or absolute) will be provided fordli_fname
, so we shouldn't rely on it.On platforms where
/proc/self/exe
is available, we can use that in conjunction withreadlink
instead.If
/proc/self/exe
is not available, we will fall back to the current dladdr strategy.readlink
, meanwhile, should be available on any *nix platform supported by ares.Note
Verified that this strategy works for retrieving the sandboxed binary path inside a Flatpak (
/app/bin/ares
), as intended.