1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 11:57:35 +00:00

LibC: execvpe() should use the provided environment instead of 'environ'

This commit is contained in:
Andreas Kling 2019-06-22 14:07:34 +02:00
parent 25fd847ef2
commit 54c5b68921

View file

@ -53,7 +53,7 @@ int execve(const char* filename, char* const argv[], char* const envp[])
int execvpe(const char* filename, char* const argv[], char* const envp[]) int execvpe(const char* filename, char* const argv[], char* const envp[])
{ {
int rc = execve(filename, argv, environ); int rc = execve(filename, argv, envp);
if (rc < 0 && errno != ENOENT) { if (rc < 0 && errno != ENOENT) {
fprintf(stderr, "execvpe() failed on first with %s\n", strerror(errno)); fprintf(stderr, "execvpe() failed on first with %s\n", strerror(errno));
return rc; return rc;
@ -64,7 +64,7 @@ int execvpe(const char* filename, char* const argv[], char* const envp[])
auto parts = path.split(':'); auto parts = path.split(':');
for (auto& part : parts) { for (auto& part : parts) {
auto candidate = String::format("%s/%s", part.characters(), filename); auto candidate = String::format("%s/%s", part.characters(), filename);
int rc = execve(candidate.characters(), argv, environ); int rc = execve(candidate.characters(), argv, envp);
if (rc < 0 && errno != ENOENT) { if (rc < 0 && errno != ENOENT) {
printf("execvpe() failed on attempt (%s) with %s\n", candidate.characters(), strerror(errno)); printf("execvpe() failed on attempt (%s) with %s\n", candidate.characters(), strerror(errno));
return rc; return rc;