From 7aad44b8257f84c9a9dfe0c95eca86e1ba932b5b Mon Sep 17 00:00:00 2001 From: Sergey Bugaev Date: Fri, 15 May 2020 12:21:45 +0300 Subject: [PATCH] Shell: Print correct errno when execvp() fails Amusingly enough, this was caused by yet another bug. --- Shell/main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Shell/main.cpp b/Shell/main.cpp index 0b9a5cedfc..9d0c1faaf7 100644 --- a/Shell/main.cpp +++ b/Shell/main.cpp @@ -1044,12 +1044,13 @@ static ExitCodeOrContinuationRequest run_command(const StringView& cmd) } else fprintf(stderr, "%s: Command not found.\n", argv[0]); } else { + int saved_errno = errno; struct stat st; if (stat(argv[0], &st) == 0 && S_ISDIR(st.st_mode)) { fprintf(stderr, "Shell: %s: Is a directory\n", argv[0]); _exit(126); } - fprintf(stderr, "execvp(%s): %s\n", argv[0], strerror(errno)); + fprintf(stderr, "execvp(%s): %s\n", argv[0], strerror(saved_errno)); } _exit(126); }