X-Git-Url: https://git.tld-linux.org/?p=packages%2Fapache.git;a=blobdiff_plain;f=apache-suexec_fcgi.patch;h=06fcfef46a80e7770f31b15df9c30da801591b08;hp=3201f3dc7cac896c4b71bcce65226ced78912c4f;hb=a4cac23f9e06b9e3ea4f6678f43e938ad0dad931;hpb=6eaec7d58a91e0cd2986bcd33472bfd99271f6b7 diff --git a/apache-suexec_fcgi.patch b/apache-suexec_fcgi.patch index 3201f3d..06fcfef 100644 --- a/apache-suexec_fcgi.patch +++ b/apache-suexec_fcgi.patch @@ -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) { @@ -56,41 +56,19 @@ } } -@@ -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