]> TLD Linux GIT Repositories - packages/apache.git/blobdiff - apache-suexec_fcgi.patch
- Apache HTTPD 2.4.4
[packages/apache.git] / apache-suexec_fcgi.patch
index 3201f3dc7cac896c4b71bcce65226ced78912c4f..06fcfef46a80e7770f31b15df9c30da801591b08 100644 (file)
@@ -1,6 +1,6 @@
---- httpd-2.4.1/support/suexec.c.orig  2011-07-13 21:11:21.000000000 +0200
-+++ httpd-2.4.1/support/suexec.c       2012-02-22 00:26:17.549340557 +0100
-@@ -234,6 +234,21 @@
+--- httpd-2.4.4/support/suexec.c.orig  2012-12-03 17:33:42.000000000 +0100
++++ httpd-2.4.4/support/suexec.c       2013-03-07 23:13:29.312581994 +0100
+@@ -240,6 +240,21 @@
      environ = cleanenv;
  }
  
@@ -22,7 +22,7 @@
  int main(int argc, char *argv[])
  {
      int userdir = 0;        /* ~userdir flag             */
-@@ -249,6 +264,7 @@
+@@ -255,6 +270,7 @@
      char dwd[AP_MAXPATH];   /* docroot working directory */
      struct passwd *pw;      /* password entry holder     */
      struct group *gr;       /* group entry holder        */
@@ -30,7 +30,7 @@
      struct stat dir_info;   /* directory info holder     */
      struct stat prg_info;   /* program info holder       */
  
-@@ -369,8 +385,23 @@
+@@ -375,8 +391,23 @@
      }
      else {
          if ((pw = getpwuid(atoi(target_uname))) == NULL) {
          }
      }
  
-@@ -549,20 +580,24 @@
-     }
-     /*
--     * Error out if the target name/group is different from
--     * the name/group of the cwd or the program.
--     */
--    if ((uid != dir_info.st_uid) ||
--        (gid != dir_info.st_gid) ||
--        (uid != prg_info.st_uid) ||
--        (gid != prg_info.st_gid)) {
--        log_err("target uid/gid (%ld/%ld) mismatch "
--                "with directory (%ld/%ld) or program (%ld/%ld)\n",
--                uid, gid,
--                dir_info.st_uid, dir_info.st_gid,
--                prg_info.st_uid, prg_info.st_gid);
--        exit(120);
-+     * If not called as suexec.fcgi error out if the target
-+     * name/group is different from the name/group of the cwd
-+     * or the program.
-+     */
+@@ -558,6 +589,7 @@
+      * Error out if the target name/group is different from
+      * the name/group of the cwd or the program.
+      */
 +    if(strcmp(base_pathname(argv[0]),"suexec.fcgi")) {
-+        if ((uid != dir_info.st_uid) ||
-+            (gid != dir_info.st_gid) ||
-+            (uid != prg_info.st_uid) ||
-+            (gid != prg_info.st_gid)) {
-+            log_err("target uid/gid (%ld/%ld) mismatch "
-+                    "with directory (%ld/%ld) or program (%ld/%ld)\n",
-+                    uid, gid,
-+                    dir_info.st_uid, dir_info.st_gid,
-+                    prg_info.st_uid, prg_info.st_gid);
-+            exit(120);
-+        }
+     if ((uid != dir_info.st_uid) ||
+         (gid != dir_info.st_gid) ||
+         (uid != prg_info.st_uid) ||
+@@ -569,6 +601,7 @@
+                 (unsigned long)prg_info.st_uid, (unsigned long)prg_info.st_gid);
+         exit(120);
      }
-+
++    }
      /*
       * Error out if the program is not executable for the user.
       * Otherwise, she won't find any error in the logs except for