Module Name: src Committed By: maxv Date: Mon Jun 30 17:22:32 UTC 2014
Modified Files: src/sys/kern: exec_script.c Log Message: If the interpreter is "", do not keep loading the script (which will later fail), but return ENOEXEC directly. ok christos@ To generate a diff of this commit: cvs rdiff -u -r1.71 -r1.72 src/sys/kern/exec_script.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/exec_script.c diff -u src/sys/kern/exec_script.c:1.71 src/sys/kern/exec_script.c:1.72 --- src/sys/kern/exec_script.c:1.71 Mon Jun 23 18:06:32 2014 +++ src/sys/kern/exec_script.c Mon Jun 30 17:22:32 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: exec_script.c,v 1.71 2014/06/23 18:06:32 maxv Exp $ */ +/* $NetBSD: exec_script.c,v 1.72 2014/06/30 17:22:32 maxv Exp $ */ /* * Copyright (c) 1993, 1994, 1996 Christopher G. Demetriou @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: exec_script.c,v 1.71 2014/06/23 18:06:32 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: exec_script.c,v 1.72 2014/06/30 17:22:32 maxv Exp $"); #if defined(SETUIDSCRIPTS) && !defined(FDSCRIPTS) #define FDSCRIPTS /* Need this for safe set-id scripts. */ @@ -163,12 +163,12 @@ exec_script_makecmds(struct lwp *l, stru for (cp = hdrstr + EXEC_SCRIPT_MAGICLEN; *cp == ' ' || *cp == '\t'; cp++) ; + if (*cp == '\0') + return ENOEXEC; /* collect the shell name; remember it's length for later */ shellname = cp; shellnamelen = 0; - if (*cp == '\0') - goto check_shell; for ( /* cp = cp */ ; *cp != '\0' && *cp != ' ' && *cp != '\t'; cp++) shellnamelen++; if (*cp == '\0')