Browse Source

Shell: Use _exit() in the forked child if execvp() fails

If we can't find an executable to exec() after forking, we don't want
to run the atexit() handlers in the child process. Just use _exit()
instead to avoid this.

This was causing us to write out the shell history to ~/.history every
time a "command not found" error was printed.
Andreas Kling 5 years ago
parent
commit
cd55f76727
1 changed files with 1 additions and 1 deletions
  1. 1 1
      Shell/main.cpp

+ 1 - 1
Shell/main.cpp

@@ -754,7 +754,7 @@ static int run_command(const String& cmd)
                         fprintf(stderr, "%s: Command not found.\n", argv[0]);
                     else
                         fprintf(stderr, "execvp(%s): %s\n", argv[0], strerror(errno));
-                    exit(1);
+                    _exit(1);
                 }
                 ASSERT_NOT_REACHED();
             }