Author: hawk                         Date: Fri Jun  5 13:31:46 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- patch to allow setting path to suexec binary, found at
  
http://www.mail-archive.com/[email protected]/msg00150.html

---- Files affected:
packages/apache-mod_fcgid:
   apache-mod_fcgid-suexec-path.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/apache-mod_fcgid/apache-mod_fcgid-suexec-path.patch
diff -u /dev/null 
packages/apache-mod_fcgid/apache-mod_fcgid-suexec-path.patch:1.1
--- /dev/null   Fri Jun  5 15:31:46 2009
+++ packages/apache-mod_fcgid/apache-mod_fcgid-suexec-path.patch        Fri Jun 
 5 15:31:41 2009
@@ -0,0 +1,98 @@
+diff -ur mod_fcgid.2.2.orig/arch/unix/fcgid_proc_unix.c 
mod_fcgid.2.2/arch/unix/fcgid_proc_unix.c
+--- mod_fcgid.2.2.orig/arch/unix/fcgid_proc_unix.c     2007-07-31 
11:09:19.000000000 +0200
++++ mod_fcgid.2.2/arch/unix/fcgid_proc_unix.c  2009-06-05 15:01:05.000000000 
+0200
+@@ -30,6 +30,7 @@
+ static int g_process_counter = 0;
+ static apr_pool_t *g_inode_cginame_map = NULL;
+ static const char *g_socket_dir = NULL;
++static const char *g_suexec_cmd = NULL;
+ 
+ static apr_status_t ap_unix_create_privileged_process(apr_proc_t * newproc,
+                                                                               
                          const char *progname,
+@@ -79,8 +80,8 @@
+       }
+       /* allocate space for 4 new args, the input args, and a null terminator 
*/
+       newargs = apr_palloc(p, sizeof(char *) * (i + 4));
+-      newprogname = SUEXEC_BIN;
+-      newargs[0] = SUEXEC_BIN;
++      newprogname = g_suexec_cmd;
++      newargs[0] = g_suexec_cmd;
+       newargs[1] = execuser;
+       newargs[2] = execgroup;
+       newargs[3] = apr_pstrdup(p, argv0);
+@@ -179,6 +180,8 @@
+                                               
procinfo->main_server->process->pconf);
+       }
+ 
++      if (!g_suexec_cmd)
++              g_suexec_cmd = get_suexec_cmd(procinfo->main_server);
+       if (!g_socket_dir)
+               g_socket_dir = get_socketpath(procinfo->main_server);
+       if (!g_inode_cginame_map || !g_socket_dir) {
+diff -ur mod_fcgid.2.2.orig/fcgid_conf.c mod_fcgid.2.2/fcgid_conf.c
+--- mod_fcgid.2.2.orig/fcgid_conf.c    2007-07-31 11:09:20.000000000 +0200
++++ mod_fcgid.2.2/fcgid_conf.c 2009-06-05 15:03:19.000000000 +0200
+@@ -61,6 +61,7 @@
+       config->max_requests_per_process = DEFAULT_MAX_REQUESTS_PER_PROCESS;
+       config->max_request_len = DEFAULT_MAX_REQUEST_LEN;
+       config->max_mem_request_len = DEFAULT_MAX_MEM_REQUEST_LEN;
++      config->suexec_cmd = SUEXEC_BIN;
+ }
+ 
+ void *create_fcgid_server_config(apr_pool_t * p, server_rec * s)
+@@ -846,3 +847,22 @@
+ 
+       return NULL;
+ }
++
++const char *set_suexec_cmd(cmd_parms * cmd, void *dummy, const char *arg)
++{
++      server_rec *s = cmd->server;
++      fcgid_server_conf *config =
++              ap_get_module_config(s->module_config, &fcgid_module);
++      config->suexec_cmd = ap_server_root_relative(cmd->pool, arg);
++      if (!config->suexec_cmd)
++              return "Invalid SuEXEC command";
++
++      return NULL;
++}
++
++const char *get_suexec_cmd(server_rec * s)
++{
++      fcgid_server_conf *config =
++              ap_get_module_config(s->module_config, &fcgid_module);
++      return config->suexec_cmd;
++}
+diff -ur mod_fcgid.2.2.orig/fcgid_conf.h mod_fcgid.2.2/fcgid_conf.h
+--- mod_fcgid.2.2.orig/fcgid_conf.h    2007-07-31 11:09:22.000000000 +0200
++++ mod_fcgid.2.2/fcgid_conf.h 2009-06-05 15:03:51.000000000 +0200
+@@ -43,6 +43,7 @@
+       int ipc_comm_timeout;
+       int busy_timeout;
+       int php_fix_pathinfo_enable;
++      char *suexec_cmd;
+ } fcgid_server_conf;
+ 
+ typedef struct {
+@@ -160,6 +161,9 @@
+                                                          const char *wrapper, 
const char *extension);
+ fcgid_wrapper_conf *get_wrapper_info(const char *cgipath, request_rec * r);
+ 
++const char *set_suexec_cmd(cmd_parms * cmd, void *dummy, const char *arg);
++const char *get_suexec_cmd(server_rec * s);
++
+ const char *set_authenticator_info(cmd_parms * cmd, void *config,
+                                                                  const char 
*arg);
+ const char *set_authenticator_authoritative(cmd_parms * cmd,
+diff -ur mod_fcgid.2.2.orig/mod_fcgid.c mod_fcgid.2.2/mod_fcgid.c
+--- mod_fcgid.2.2.orig/mod_fcgid.c     2007-07-31 11:09:22.000000000 +0200
++++ mod_fcgid.2.2/mod_fcgid.c  2009-06-05 15:06:51.000000000 +0200
+@@ -594,6 +594,8 @@
+       AP_INIT_TAKE12("FCGIWrapper", set_wrapper_config, NULL,
+                                  RSRC_CONF | ACCESS_CONF | OR_FILEINFO,
+                                  "The CGI wrapper setting"),
++      AP_INIT_TAKE1("FastCgiSuexec", set_suexec_cmd, NULL, RSRC_CONF,
++                                 "Path to FastCGI SuEXEC command"),
+       AP_INIT_TAKE1("PHP_Fix_Pathinfo_Enable",
+                                 set_php_fix_pathinfo_enable,
+                                 NULL, RSRC_CONF,
================================================================
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to