tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ian Ward Comfort <icomf...@rescomp.stanford.edu>
Subject Re: [Bug 43753] New: - JkEnvVar and Limit of content length HTTP request POST
Date Fri, 02 Nov 2007 03:14:09 GMT
On Nov 1, 2007, at 7:33 AM, Rainer Jung wrote:
> I didn't have time to go into it, but thanks for the detailed  
> report. We will fix this before 1.2.26.

Great, I'm glad to hear it.

> In case you have a patch to propose, that'll be a good starting point.

Here's one attempt at a patch, which fixes the problem in my limited  
testing.  It modifies the code path as little as possible, since all  
I know about the intended behavior is what I've gleaned from a  
cursory audit.

Beware, though, that this patch changes the semantics of the  
was_initialized flag somewhat.  This code sets it for all  
jk_server_conf_t objects, even those for virtual hosts, on whom  
init_jk() is never called.  This should be safe since it seems that  
the only other use of the flag is to check whether wc_close() must be  
run, and I think that function is (must be?) idempotent.

Even if this is all correct, it might be better to add another flag  
to jk_server_conf_t to indicate that environment-variable and options  
initialization has occurred.

--- apache-2.0/mod_jk.c 2007-08-02 05:10:48.000000000 -0700
+++ apache-2.0/mod_jk.c 2007-11-01 17:35:01.000000000 -0700
@@ -2819,7 +2819,6 @@
          conf = (jk_server_conf_t *)ap_get_module_config(s- 
 >module_config,
                                                          &jk_module);
          if (!conf->was_initialized) {
-            conf->was_initialized = JK_TRUE;
              /* step through the servers and open each jk logfile
               * and do additional post config initialization.
               */
@@ -2828,7 +2827,8 @@
                                                                         
              &jk_module);
                  if (open_jklog(srv, pconf))
                      return HTTP_INTERNAL_SERVER_ERROR;
-                if (sconf) {
+                if (sconf && !sconf->was_initialized) {
+                    conf->was_initialized = JK_TRUE;
                      sconf->options &= ~sconf->exclude_options;
                      if (!uri_worker_map_alloc(&(sconf->uw_map),
                                                sconf- 
 >uri_to_context, sconf->log))

--
Ian Ward Comfort <icomfort@rescomp.stanford.edu>
System Administrator, Student Computing, Stanford University


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message