---- 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;
}
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 */
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