Repository navigation
Prevent mutating the global environment pointer in CommandExt::exec and opt to use execve and resolve path manually
#157144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
asder8215
wants to merge
10
commits into
rust-lang:main
Choose a base branch
from
asder8215:commandext_exec_bug_fix
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+264
−43
Open
Changes from all commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
a8b72e0
Prevent mutating the global environment pointer in CommandExt::exec a…
asder8215 db368d4
Perform all memory allocations necessary for do_exec before forking; …
asder8215 f8894f5
Pre-allocate a buffer with the maximum path length that we'll have fr…
asder8215 09f496d
Search for PATH environment variable from maybe_envp/environ() once, …
asder8215 fc53d39
Account for paths with separator byte at the end and added further do…
asder8215 32aa0fd
Update documentation on confstr to refer to Issue 8 instead of Issue …
asder8215 45e2ed2
Refactor exec code from do_exec into an internal execvpe function
asder8215 4359483
Use confstr(_CS_PATH) on linux with a gnu target env and _PATH_DEFPAT…
asder8215 07cf726
Refactor setting default_path field and shell_argv buffer population …
asder8215 c6475f9
Change confstr(...) function to return a CString instead of an OsStri…
asder8215 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(Apologies for the repeat ping, previous message is label outdated due to new commits)
@joboet see my comment earlier #157144 (comment)
Unresolved question here is should we just directly use
":/bin:/usr/bin"for uclibc's execvp default fallback path? This is different from its_PATH_DEFPATHvalue which is"/usr/bin:/bin"View changes since the review
View changes since the review
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@psumbera for Solaris, @xingxue-ibm for AIX: Do these platforms have constants like
_PATH_DEFPATHthat are used byexecvpwhen noPATHis available? Or is there a better way to emulateexecvpbehavior?Probably doing a libc release in 1-2 weeks, as a heads up if there's something to add there.