Author: jilles
Date: Thu Feb  3 23:38:11 2011
New Revision: 218242
URL: http://svn.freebsd.org/changeset/base/218242

Log:
  sh: Return only 126 or 127 for execve() failures.
  
  Do not return 2 for errors other than [EACCES] or [ENOENT].

Modified:
  head/bin/sh/exec.c

Modified: head/bin/sh/exec.c
==============================================================================
--- head/bin/sh/exec.c  Thu Feb  3 20:44:49 2011        (r218241)
+++ head/bin/sh/exec.c  Thu Feb  3 23:38:11 2011        (r218242)
@@ -129,20 +129,13 @@ shellexec(char **argv, char **envp, cons
        }
 
        /* Map to POSIX errors */
-       switch (e) {
-       case EACCES:
-               exerrno = 126;
-               break;
-       case ENOENT:
+       if (e == ENOENT || e == ENOTDIR) {
                exerrno = 127;
-               break;
-       default:
-               exerrno = 2;
-               break;
-       }
-       if (e == ENOENT || e == ENOTDIR)
                exerror(EXEXEC, "%s: not found", argv[0]);
-       exerror(EXEXEC, "%s: %s", argv[0], strerror(e));
+       } else {
+               exerrno = 126;
+               exerror(EXEXEC, "%s: %s", argv[0], strerror(e));
+       }
 }
 
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to