httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From b..@hyperreal.org
Subject cvs commit: apachen/src/main alloc.c
Date Mon, 29 Dec 1997 17:51:59 GMT
ben         97/12/29 09:51:59

  Modified:    src      CHANGES
               src/main alloc.c
  Log:
  Make table_{set,unset}() deal correctly with multiple occurrences of the
  same key.
  PR: 1604
  Submitted by:	Stephen Scheck <sscheck@infonex.net>, Ben
  Reviewed by:	Ben Laurie
  
  Revision  Changes    Path
  1.551     +4 -0      apachen/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/CHANGES,v
  retrieving revision 1.550
  retrieving revision 1.551
  diff -u -r1.550 -r1.551
  --- CHANGES	1997/12/28 04:50:59	1.550
  +++ CHANGES	1997/12/29 17:51:51	1.551
  @@ -1,5 +1,9 @@
   Changes with Apache 1.3b4
   
  +  *) table_set() and table_unset() did not deal correctly with
  +     multiple occurrences of the same key. [Stephen Scheck
  +	 <sscheck@infonex.net>, Ben Laurie] PR#1604
  +
     *) Correct handling of quotation marks in AuthName realm names; as a
        byproduct, a new function: ap_escape_quotes().  [Ken Coar] PR#1195
   
  
  
  
  1.63      +5 -2      apachen/src/main/alloc.c
  
  Index: alloc.c
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/main/alloc.c,v
  retrieving revision 1.62
  retrieving revision 1.63
  diff -u -r1.62 -r1.63
  --- alloc.c	1997/12/26 23:25:46	1.62
  +++ alloc.c	1997/12/29 17:51:57	1.63
  @@ -732,11 +732,12 @@
       table_entry *elts = (table_entry *) t->elts;
       int done = 0;
   
  -    for (i = 0; i < t->nelts; ++i)
  +    for (i = 0; i < t->nelts; )
   	if (!strcasecmp(elts[i].key, key)) {
   	    if (!done) {
   		elts[i].val = pstrdup(t->pool, val);
   		done = 1;
  +		++i;
   	    }
   	    else {		/* delete an extraneous element */
   		for (j = i, k = i + 1; k < t->nelts; ++j, ++k) {
  @@ -746,6 +747,7 @@
   		--t->nelts;
   	    }
   	}
  +	else ++i;
   
       if (!done) {
   	elts = (table_entry *) push_array(t);
  @@ -759,7 +761,7 @@
       register int i, j, k;
       table_entry *elts = (table_entry *) t->elts;
   
  -    for (i = 0; i < t->nelts; ++i)
  +    for (i = 0; i < t->nelts; )
   	if (!strcasecmp(elts[i].key, key)) {
   
   	    /* found an element to skip over
  @@ -773,6 +775,7 @@
   	    }
   	    --t->nelts;
   	}
  +	else ++i;
   }
   
   API_EXPORT(void) table_merge(table *t, const char *key, const char *val)
  
  
  

Mime
View raw message