components/apache2/patches/CVE-2014-0231.patch
author Petr Sumbera <petr.sumbera@oracle.com>
Thu, 14 Aug 2014 23:47:06 -0700
changeset 2049 e2939e765e30
permissions -rw-r--r--
19262807 problem in UTILITY/APACHE
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2049
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     1
Patch origin: upstream
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     2
Patch status: will be part of next version
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     3
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     4
http://svn.apache.org/viewvc?view=revision&revision=1611185
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     5
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     6
--- modules/generators/mod_cgid.c	2014/07/16 20:53:11	1611184
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     7
+++ modules/generators/mod_cgid.c	2014/07/16 20:56:51	1611185
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     8
@@ -93,6 +93,10 @@
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     9
 static pid_t parent_pid;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    10
 static ap_unix_identity_t empty_ugid = { (uid_t)-1, (gid_t)-1, -1 };
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    11
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    12
+typedef struct { 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    13
+    apr_interval_time_t timeout;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    14
+} cgid_dirconf;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    15
+
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    16
 /* The APR other-child API doesn't tell us how the daemon exited
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    17
  * (SIGSEGV vs. exit(1)).  The other-child maintenance function
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    18
  * needs to decide whether to restart the daemon after a failure
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    19
@@ -934,7 +938,14 @@
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    20
     return overrides->logname ? overrides : base;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    21
 }
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    22
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    23
+static void *create_cgid_dirconf(apr_pool_t *p, char *dummy)
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    24
+{
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    25
+    cgid_dirconf *c = (cgid_dirconf *) apr_pcalloc(p, sizeof(cgid_dirconf));
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    26
+    return c;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    27
+}
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    28
+
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    29
 static const char *set_scriptlog(cmd_parms *cmd, void *dummy, const char *arg)
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    30
+
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    31
 {
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    32
     server_rec *s = cmd->server;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    33
     cgid_server_conf *conf = ap_get_module_config(s->module_config,
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    34
@@ -987,7 +998,16 @@
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    35
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    36
     return NULL;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    37
 }
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    38
+static const char *set_script_timeout(cmd_parms *cmd, void *dummy, const char *arg)
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    39
+{
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    40
+    cgid_dirconf *dc = dummy;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    41
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    42
+    if (ap_timeout_parameter_parse(arg, &dc->timeout, "s") != APR_SUCCESS) { 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    43
+        return "CGIDScriptTimeout has wrong format";
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    44
+    }
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    45
+ 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    46
+    return NULL;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    47
+}
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    48
 static const command_rec cgid_cmds[] =
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    49
 {
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    50
     AP_INIT_TAKE1("ScriptLog", set_scriptlog, NULL, RSRC_CONF,
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    51
@@ -999,6 +1019,10 @@
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    52
     AP_INIT_TAKE1("ScriptSock", set_script_socket, NULL, RSRC_CONF,
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    53
                   "the name of the socket to use for communication with "
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    54
                   "the cgi daemon."),
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    55
+    AP_INIT_TAKE1("CGIDScriptTimeout", set_script_timeout, NULL, RSRC_CONF | ACCESS_CONF,
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    56
+                  "The amount of time to wait between successful reads from "
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    57
+                  "the CGI script, in seconds."),
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    58
+                  
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    59
     {NULL}
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    60
 };
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    61
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    62
@@ -1335,11 +1359,15 @@
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    63
     apr_file_t *tempsock;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    64
     struct cleanup_script_info *info;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    65
     apr_status_t rv;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    66
+    cgid_dirconf *dc;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    67
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    68
     if (strcmp(r->handler,CGI_MAGIC_TYPE) && strcmp(r->handler,"cgi-script"))
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    69
         return DECLINED;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    70
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    71
     conf = ap_get_module_config(r->server->module_config, &cgid_module);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    72
+    dc = ap_get_module_config(r->per_dir_config, &cgid_module);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    73
+
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    74
+    
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    75
     is_included = !strcmp(r->protocol, "INCLUDED");
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    76
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    77
     if ((argv0 = strrchr(r->filename, '/')) != NULL)
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    78
@@ -1412,6 +1440,12 @@
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    79
      */
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    80
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    81
     apr_os_pipe_put_ex(&tempsock, &sd, 1, r->pool);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    82
+    if (dc->timeout > 0) { 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    83
+        apr_file_pipe_timeout_set(tempsock, dc->timeout);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    84
+    }
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    85
+    else { 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    86
+        apr_file_pipe_timeout_set(tempsock, r->server->timeout);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    87
+    }
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    88
     apr_pool_cleanup_kill(r->pool, (void *)((long)sd), close_unix_socket);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    89
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    90
     if ((argv0 = strrchr(r->filename, '/')) != NULL)
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    91
@@ -1487,6 +1521,10 @@
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    92
             if (rv != APR_SUCCESS) {
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    93
                 /* silly script stopped reading, soak up remaining message */
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    94
                 child_stopped_reading = 1;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    95
+                ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    96
+                              "Error writing request body to script %s", 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    97
+                              r->filename);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    98
+
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    99
             }
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   100
         }
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   101
         apr_brigade_cleanup(bb);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   102
@@ -1577,7 +1615,13 @@
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   103
             return HTTP_MOVED_TEMPORARILY;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   104
         }
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   105
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   106
-        ap_pass_brigade(r->output_filters, bb);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   107
+        rv = ap_pass_brigade(r->output_filters, bb);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   108
+        if (rv != APR_SUCCESS) { 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   109
+            /* APLOG_ERR because the core output filter message is at error,
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   110
+             * but doesn't know it's passing CGI output 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   111
+             */
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   112
+            ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "Failed to flush CGI output to client");
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   113
+        }
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   114
     }
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   115
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   116
     if (nph) {
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   117
@@ -1707,6 +1751,8 @@
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   118
     request_rec *r = f->r;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   119
     cgid_server_conf *conf = ap_get_module_config(r->server->module_config,
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   120
                                                   &cgid_module);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   121
+    cgid_dirconf *dc = ap_get_module_config(r->per_dir_config, &cgid_module);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   122
+
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   123
     struct cleanup_script_info *info;
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   124
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   125
     add_ssi_vars(r);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   126
@@ -1736,6 +1782,13 @@
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   127
      * get rid of the cleanup we registered when we created the socket.
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   128
      */
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   129
     apr_os_pipe_put_ex(&tempsock, &sd, 1, r->pool);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   130
+    if (dc->timeout > 0) {
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   131
+        apr_file_pipe_timeout_set(tempsock, dc->timeout);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   132
+    }
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   133
+    else {
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   134
+        apr_file_pipe_timeout_set(tempsock, r->server->timeout);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   135
+    }
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   136
+
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   137
     apr_pool_cleanup_kill(r->pool, (void *)((long)sd), close_unix_socket);
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   138
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   139
     APR_BRIGADE_INSERT_TAIL(bb, apr_bucket_pipe_create(tempsock,
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   140
@@ -1841,7 +1894,7 @@
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   141
 
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   142
 module AP_MODULE_DECLARE_DATA cgid_module = {
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   143
     STANDARD20_MODULE_STUFF,
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   144
-    NULL, /* dir config creater */
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   145
+    create_cgid_dirconf, /* dir config creater */
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   146
     NULL, /* dir merger --- default is to override */
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   147
     create_cgid_config, /* server config */
e2939e765e30 19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   148
     merge_cgid_config, /* merge server config */