aboutsummaryrefslogtreecommitdiff
path: root/src/process/execvp.c (follow)
Commit message (Expand)AuthorAgeFilesLines
* use __strchrnul instead of strchr and strlen in execvpe•••The result is the same but takes less code. Note that __execvpe calls getenv which calls __strchrnul so even using static output the size of the executable won't grow. Frediano Ziglio2019-04-021-2/+1
* reduce spurious inclusion of libc.h•••libc.h was intended to be a header for access to global libc state and related interfaces, but ended up included all over the place because it was the way to get the weak_alias macro. most of the inclusions removed here are places where weak_alias was needed. a few were recently introduced for hidden. some go all the way back to when libc.h defined CANCELPT_BEGIN and _END, and all (wrongly implemented) cancellation points had to include it. remaining spurious users are mostly callers of the LOCK/UNLOCK macros and files that use the LFS64 macro to define the awful *64 aliases. in a few places, new inclusion of libc.h is added because several internal headers no longer implicitly include libc.h. declarations for __lockfile and __unlockfile are moved from libc.h to stdio_impl.h so that the latter does not need libc.h. putting them in libc.h made no sense at all, since the macros in stdio_impl.h are needed to use them correctly anyway. Rich Felker2018-09-121-1/+0
* convert execvp error handling to switch statement•••this is more extensible if we need to consider additional errors, and more efficient as long as the compiler does not know it can cache the result of __errno_location (a surprisingly complex issue detailed in commit a603a75a72bb469c6be4963ed1b55fabe675fe15). Rich Felker2018-02-211-2/+9
* fix execvp failing on not-dir entries in PATH.•••It's better to make execvp continue PATH search on ENOTDIR rather than issuing an error. Bogus entries should not render rest of PATH invalid. Maintainer's note: POSIX seems to require the search to continue like this as part of XBD 8.3 Other Environment Variables. Only errors that conclusively determine non-existence are candidates for continuing; otherwise for consistency we have to report the error. Przemyslaw Pawelczyk2018-02-211-1/+1
* make execvp continue PATH search on EACCES rather than issuing an errror•••the specification for execvp itself is unclear as to whether encountering a file that cannot be executed due to EACCES during the PATH search is a mandatory error condition; however, XBD 8.3's specification of the PATH environment variable clarifies that the search continues until a file with "appropriate execution permissions" is found. since it seems undesirable/erroneous to report ENOENT rather than EACCES when an early path element has a non-executable file and all later path elements lack any file by the requested name, the new code stores a flag indicating that EACCES was seen and sets errno back to EACCES in this case. Rich Felker2015-02-031-1/+4
* expose public execvpe interfaceM Farkas-Dyck2014-04-201-0/+3
* consistently use the internal name __environ for environ•••patch by Jens Gustedt. previously, the intended policy was to use __environ in code that must conform to the ISO C namespace requirements, and environ elsewhere. this policy was not followed in practice anyway, making things confusing. on top of that, Jens reported that certain combinations of link-time optimization options were breaking with the inconsistent references; this seems to be a compiler or linker bug, but having it go away is a nice side effect of the changes made here. Rich Felker2013-02-171-2/+2
* fix parent-memory-clobber in posix_spawn (environ)Rich Felker2012-10-181-3/+10
* fix various bugs in path and error handling in execvp/fexecveRich Felker2011-09-291-17/+25
* initial check-in, version 0.5.0Rich Felker2011-02-121-0/+34