httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dgau...@hyperreal.org
Subject cvs commit: apache/src CHANGES util.c
Date Tue, 30 Dec 1997 18:59:33 GMT
dgaudet     97/12/30 10:59:33

  Modified:    src      Tag: APACHE_1_2_X CHANGES util.c
  Log:
  Fix the O(n^2) behaviour of no2slash()
  
  Reviewed by:	Marc Slemko, Brian Behlendorf
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.286.2.60 +3 -0      apache/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache/src/CHANGES,v
  retrieving revision 1.286.2.59
  retrieving revision 1.286.2.60
  diff -u -r1.286.2.59 -r1.286.2.60
  --- CHANGES	1997/11/05 11:46:20	1.286.2.59
  +++ CHANGES	1997/12/30 18:59:30	1.286.2.60
  @@ -1,5 +1,8 @@
   Changes with Apache 1.2.5
   
  +  *) no2slash() was O(n^2) in the length of the input.  Make it O(n).
  +     [Dean Gaudet]
  +
     *) mod_include used uninitialized data for some uses of && and ||.
        [Brian Slesinsky <bslesins@wired.com>] PR#1139
   
  
  
  
  1.52.2.3  +15 -7     apache/src/util.c
  
  Index: util.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/util.c,v
  retrieving revision 1.52.2.2
  retrieving revision 1.52.2.3
  diff -u -r1.52.2.2 -r1.52.2.3
  --- util.c	1997/06/27 01:47:47	1.52.2.2
  +++ util.c	1997/12/30 18:59:32	1.52.2.3
  @@ -328,14 +328,22 @@
       }
   } 
   
  -void no2slash(char *name) {
  -    register int x,y;
  +void no2slash(char *name)
  +{
  +    char *d, *s;
   
  -    for(x=0; name[x];)
  -        if(x && (name[x-1] == '/') && (name[x] == '/'))
  -            for(y=x+1;name[y-1];y++)
  -                name[y-1] = name[y];
  -	else x++;
  +    s = d = name;
  +    while (*s) {
  +        if ((*d++ = *s) == '/') {
  +            do {
  +                ++s;
  +            } while (*s == '/');
  +        }
  +        else {
  +            ++s;
  +        }
  +    }
  +    *d = '\0';
   }
   
   char *make_dirstr(pool *p, const char *s, int n) {
  
  
  

Mime
View raw message