summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/spawn.cc7
2 files changed, 11 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index b102eaeba..0b62c695c 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,7 @@
+2004-07-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * spawn.cc (spawn_guts): Check if script is executable.
+
2004-06-30 Corinna Vinschen <corinna@vinschen.de>
* times.cc (hires_ms::usecs): Don't overreact.
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
index 225e1ce0f..b7b136b2b 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -469,6 +469,13 @@ spawn_guts (const char * prog_arg, const char *const *argv,
debug_printf ("%s is a script", (char *) real_path);
+ if (real_path.has_acls () && allow_ntsec
+ && check_file_access (real_path, X_OK))
+ {
+ debug_printf ("... but not executable");
+ break;
+ }
+
char *pgm, *arg1;
if (buf[0] != '#' || buf[1] != '!')