httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dgau...@hyperreal.org
Subject cvs commit: apachen/src/modules/standard mod_include.c
Date Tue, 27 Jan 1998 02:46:58 GMT
dgaudet     98/01/26 18:46:58

  Modified:    src/modules/standard mod_include.c
  Log:
  Fix a potential memory corruption bug -- setting
  
      r->subprocess_env = r->main->subprocess_env
  
  causes bogus behaviour as soon as any new values are added to
  r->subprocess_env.  The new values could be allocated out of a pool
  which had a shorter lifespan than the pool of the table... but only
  if using the new table_xxxn API.  As a side-effect, this fix removes
  the need to play with r->finfo... since modifications to the subrequest
  environment don't affect the parent.
  
  But that's a potential problem, about to post more details to new-httpd,
  this is an interim fix.
  
  Revision  Changes    Path
  1.68      +6 -7      apachen/src/modules/standard/mod_include.c
  
  Index: mod_include.c
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/modules/standard/mod_include.c,v
  retrieving revision 1.67
  retrieving revision 1.68
  diff -u -r1.67 -r1.68
  --- mod_include.c	1998/01/26 19:50:21	1.67
  +++ mod_include.c	1998/01/27 02:46:56	1.68
  @@ -2279,14 +2279,13 @@
       }
   
       if (r->main) {
  -        /* Kludge --- for nested includes, we want to keep the
  -         * subprocess environment of the base document (for compatibility);
  -         * that means torquing our own last_modified date as well so that
  -         * the LAST_MODIFIED variable gets reset to the proper value if
  -         * the nested document resets <!--#config timefmt-->
  +	/* Kludge --- for nested includes, we want to keep the subprocess
  +	 * environment of the base document (for compatibility).  This is only
  +	 * necessary when there has been an internal redirect somewhere along
  +	 * the way.  When that happens the original environment has been
  +	 * renamed REDIRECT_foobar for each foobar.
            */
  -        r->subprocess_env = r->main->subprocess_env;
  -        r->finfo.st_mtime = r->main->finfo.st_mtime;
  +        r->subprocess_env = copy_table(r->pool, r->main->subprocess_env);
       }
       else {
           add_common_vars(r);
  
  
  

Mime
View raw message