]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Added shebang check for '! so that .vbs scripts can work as CGI.
authorGuenter Knauf <fuankg@apache.org>
Sun, 17 Apr 2011 16:38:42 +0000 (16:38 +0000)
committerGuenter Knauf <fuankg@apache.org>
Sun, 17 Apr 2011 16:38:42 +0000 (16:38 +0000)
Backport of r1054347 from trunk; reviewed by wrowe, trawick.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@1094174 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
STATUS
modules/arch/win32/mod_win32.c

diff --git a/CHANGES b/CHANGES
index 736dfe9aa33e77d4b4a18073747cb8fd76ca257e..3f259ce6f0b5ca67a70149f172f75bab08e49dde 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,10 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.2.18
 
+  *) mod_win32: Added shebang check for '! so that .vbs scripts can work as CGI.
+     Win32's cscript interpreter can only use a single quote as comment char.
+     [Guenter Knauf]
+
   *) configure: Fix htpasswd/htdbm libcrypt link errors with some newer
      linkers. [Stefan Fritsch]
 
diff --git a/STATUS b/STATUS
index b3836401386dfbe550949001b7a3362215003904..c6c43e461c47a649ac200be41aa5361ef87fae5d 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -91,13 +91,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-  * mod_win32: Add shebang check so that .vbs scripts can work as CGI.
-     Trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1054347
-     2.2.x patch: Trunk version of patch works with offset  
-     +1 fuankg, wrowe, trawick
-     wrowe notes: CHANGES needs to be clearer than the text above.
-     Trunk/CHANGES and 2.2.x/CHANGES need an update.
-
   * htpasswd.c: Syncronize with trunk version. This includes a couple of fixes:
      r826805, r826822, r829162, r829355, r829431. The patch below covers only
      the C code - we also need to apply the docs and CHANGES parts of r826805.
index 181f66d766e1d36d11ef15c03450a75f4187b64b..c2397ea175084e7c872e755e396ba5c98d49a98c 100644 (file)
@@ -475,8 +475,11 @@ static apr_status_t ap_cgi_build_command(const char **cmd, const char ***argv,
             memmove(buffer, buffer + 3, bytes -= 3);
         }
 
-        /* Script or executable, that is the question... */
-        if ((bytes >= 2) && (buffer[0] == '#') && (buffer[1] == '!')) {
+        /* Script or executable, that is the question...
+         * we check here also for '! so that .vbs scripts can work as CGI.
+         */
+        if ((bytes >= 2) && ((buffer[0] == '#') || (buffer[0] == '\''))
+                         && (buffer[1] == '!')) {
             /* Assuming file is a script since it starts with a shebang */
             for (i = 2; i < bytes; i++) {
                 if ((buffer[i] == '\r') || (buffer[i] == '\n')) {
@@ -511,7 +514,7 @@ static apr_status_t ap_cgi_build_command(const char **cmd, const char ***argv,
     if (!interpreter) {
         ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
                       "%s is not executable; ensure interpreted scripts have "
-                      "\"#!\" first line", *cmd);
+                      "\"#!\" or \"'!\" first line", *cmd);
         return APR_EBADF;
     }