httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rodent of Unusual Size <c...@hyperreal.org>
Subject cvs commit: apachen/src/modules/standard mod_rewrite.c
Date Tue, 09 Sep 1997 11:07:01 GMT
coar        97/09/09 04:06:59

  Modified:    src      CHANGES
               src/modules/standard mod_rewrite.c
  Log:
  	Don't take *any* actions if the RewriteEngine is off..
  
  PR:		991
  Reviewed by:	Ralf S. Engelschall
  
  Revision  Changes    Path
  1.430     +5 -1      apachen/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/CHANGES,v
  retrieving revision 1.429
  retrieving revision 1.430
  diff -u -r1.429 -r1.430
  --- CHANGES	1997/09/09 01:24:31	1.429
  +++ CHANGES	1997/09/09 11:06:55	1.430
  @@ -1,4 +1,8 @@
  -Changes with Apache 1.3a2
  +Changes with Apache 1.3b1
  +
  +  *) *Really* disable all mod_rewrite operations if the engine is off.
  +     Some things (like RewriteMaps) were checked/performed even if they
  +     weren't supposed to be.  [Ken Coar, PR #991]
   
     *) Implement a new timer scheme which eliminates the need to call alarm() all
        the time.  Instead a counter in the scoreboard for each child is used to
  
  
  
  1.51      +26 -6     apachen/src/modules/standard/mod_rewrite.c
  
  Index: mod_rewrite.c
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/modules/standard/mod_rewrite.c,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- mod_rewrite.c	1997/09/01 02:39:03	1.50
  +++ mod_rewrite.c	1997/09/09 11:06:58	1.51
  @@ -1,4 +1,3 @@
  - 
   /* ====================================================================
    * Copyright (c) 1996,1997 The Apache Group.  All rights reserved.
    *
  @@ -455,9 +454,9 @@
       new->fpin  = 0;
       new->fpout = 0;
   
  -    if (new->checkfile)
  -        if (stat(new->checkfile, &st) == -1)
  -            return pstrcat(cmd->pool, "RewriteMap: map file or program not found:",
new->checkfile, NULL);
  +    if (new->checkfile && (sconf->state == ENGINE_ENABLED)
  +        && (stat(new->checkfile, &st) == -1))
  +	return pstrcat(cmd->pool, "RewriteMap: map file or program not found:", new->checkfile,
NULL);
   
       return NULL;
   }
  @@ -2192,7 +2191,14 @@
           s = &entries[i];
           if (strcmp(s->name, name) == 0) {
               if (s->type == MAPTYPE_TXT) {
  -                stat(s->checkfile, &st); /* existence was checked at startup! */
  +                if (stat(s->checkfile, &st) == -1) {
  +		    aplog_error(APLOG_MARK, APLOG_ERR, r->server,
  +			        "mod_rewrite: can't access text RewriteMap file %s: %s",
  +			        s->checkfile, strerror(errno));
  +		    rewritelog(r, 1,
  +			       "can't open RewriteMap file, see error log");
  +		    return NULL;
  +		}
                   value = get_cache_string(cachep, s->name, CACHEMODE_TS, st.st_mtime,
key);
                   if (value == NULL) {
                       rewritelog(r, 6, "cache lookup FAILED, forcing new map lookup");
  @@ -2213,7 +2219,14 @@
               }
               else if (s->type == MAPTYPE_DBM) {
   #if HAS_NDBM_LIB
  -                stat(s->checkfile, &st); /* existence was checked at startup! */
  +                if (stat(s->checkfile, &st) == -1) {
  +		    aplog_error(APLOG_MARK, APLOG_ERROR, r->server,
  +			        "mod_rewrite: can't access dbm RewriteMap file %s: %s",
  +			        s->checkfile, strerror(errno));
  +		    rewritelog(r, 1,
  +			       "can't open RewriteMap file, see error log");
  +		    return NULL;
  +		}
                   value = get_cache_string(cachep, s->name, CACHEMODE_TS, st.st_mtime,
key);
                   if (value == NULL) {
                       rewritelog(r, 6, "cache lookup FAILED, forcing new map lookup");
  @@ -2535,6 +2548,13 @@
       int rc;
     
       conf = get_module_config(s->module_config, &rewrite_module);
  +    /*
  +     * If the engine isn't turned on, don't even try to do anything.
  +     */
  +    if (conf->state == ENGINE_DISABLED) {
  +	return;
  +    }
  +    
   
       rewritemaps = conf->rewritemaps;
       entries = (rewritemap_entry *)rewritemaps->elts;
  
  
  

Mime
View raw message