You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by hg...@apache.org on 2001/06/01 10:41:16 UTC

cvs commit: jakarta-tomcat/src/native/mod_jk/common jk_ajp13_worker.c

hgomez      01/06/01 01:41:16

  Modified:    src/native/mod_jk/apache1.3 mod_jk.c
               src/native/mod_jk/common jk_ajp13_worker.c
  Log:
  Fix memory leaks when multiple conf structures are allocated
  and not desallocated
  Submitted by:	Mike Anderson <mm...@novell.com>
  
  Revision  Changes    Path
  1.9       +19 -7     jakarta-tomcat/src/native/mod_jk/apache1.3/mod_jk.c
  
  Index: mod_jk.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/native/mod_jk/apache1.3/mod_jk.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- mod_jk.c	2001/04/05 05:27:52	1.8
  +++ mod_jk.c	2001/06/01 08:41:13	1.9
  @@ -1047,14 +1047,26 @@
   
   static void exit_handler (server_rec *s, ap_pool *p)
   {
  -   jk_server_conf_t *conf =
  -       (jk_server_conf_t *)ap_get_module_config(s->module_config, &jk_module);
  +    server_rec *tmp = s;
   
  -   wc_close(conf->log);
  -   uri_worker_map_free(&(conf->uw_map), conf->log);
  -   map_free(&(conf->uri_to_context));
  -   if (conf->log)
  -      jk_close_file_logger(&(conf->log));
  +    /* loop through all available servers to clean up all configuration 
  +     * records we've created
  +     */  
  +    while (NULL != tmp)
  +    {
  +        jk_server_conf_t *conf =
  +            (jk_server_conf_t *)ap_get_module_config(tmp->module_config, &jk_module);
  +
  +        if (NULL != conf)
  +        {
  +            wc_close(conf->log);
  +            uri_worker_map_free(&(conf->uw_map), conf->log);
  +            map_free(&(conf->uri_to_context));
  +            if (conf->log)
  +                jk_close_file_logger(&(conf->log));
  +        }
  +        tmp = tmp->next;
  +    }
   }
   
   static const handler_rec jk_handlers[] =
  
  
  
  1.8       +1 -0      jakarta-tomcat/src/native/mod_jk/common/jk_ajp13_worker.c
  
  Index: jk_ajp13_worker.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/native/mod_jk/common/jk_ajp13_worker.c,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- jk_ajp13_worker.c	2001/04/19 21:26:43	1.7
  +++ jk_ajp13_worker.c	2001/06/01 08:41:15	1.8
  @@ -58,7 +58,7 @@
    * Author:      Henri Gomez <hg...@slib.fr>                               *
    * Author:      Costin <co...@costin.dnt.ro>                              *
    * Author:      Gal Shachor <sh...@il.ibm.com>                           *
  - * Version:     $Revision: 1.7 $                                           *
  + * Version:     $Revision: 1.8 $                                           *
    ***************************************************************************/
   
   #include "jk_pool.h"
  @@ -138,6 +138,7 @@
   static void close_endpoint(ajp13_endpoint_t *ep)
   {
       reset_endpoint(ep);
  +    jk_close_pool(&(ep->pool));
       if(ep->sd > 0) {
           jk_close_socket(ep->sd);
       }