aboutsummaryrefslogtreecommitdiffstats
path: root/www/suphp/files/patch-suphp.c
diff options
context:
space:
mode:
Diffstat (limited to 'www/suphp/files/patch-suphp.c')
-rw-r--r--www/suphp/files/patch-suphp.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/www/suphp/files/patch-suphp.c b/www/suphp/files/patch-suphp.c
new file mode 100644
index 000000000000..832fd84d1868
--- /dev/null
+++ b/www/suphp/files/patch-suphp.c
@@ -0,0 +1,34 @@
+--- suphp.c.orig Wed Oct 23 22:16:50 2002
++++ suphp.c Wed Nov 13 16:26:01 2002
+@@ -68,6 +68,7 @@
+ {
+ // Check, if program has been started by Apache
+ struct passwd *apacheuser;
++ struct group *apachegroup;
+ struct passwd *calluser;
+ struct passwd *targetuser;
+ struct group *targetgroup;
+@@ -76,6 +77,7 @@
+ path_translated = getenv("SCRIPT_FILENAME");
+
+ apacheuser = getpwnam(OPT_APACHE_USER);
++ apachegroup = getgrnam(OPT_APACHE_GROUP);
+ calluser = getpwuid(getuid());
+
+ if (calluser->pw_uid!=apacheuser->pw_uid)
+@@ -105,13 +107,13 @@
+
+ // Get gid and uid of the file and check it
+ targetuser = getpwuid(file_get_uid(path_translated));
+- if (targetuser->pw_uid < OPT_MIN_UID)
++ if (targetuser->pw_uid < OPT_MIN_UID && targetuser->pw_uid != apacheuser->pw_uid)
+ {
+ log_error ("UID of %s (%d / %s) < %d", path_translated, targetuser->pw_uid, targetuser->pw_name, OPT_MIN_UID);
+ error_exit(ERRCODE_LOW_UID);
+ }
+ targetgroup = getgrgid(file_get_gid(path_translated));
+- if (targetgroup->gr_gid < OPT_MIN_GID)
++ if (targetgroup->gr_gid < OPT_MIN_GID && targetgroup->gr_gid != apachegroup->gr_gid)
+ {
+ log_error ("GID of %s (%d / %s) < %d", path_translated, targetgroup->gr_gid, targetgroup->gr_name, OPT_MIN_GID);
+ error_exit(ERRCODE_LOW_GID);