Committed, thanks.
Ryan
On Thu, 8 Mar 2001, Jon Travis wrote:
> apr_hash.c has a very obscure bug in it, though I'm very surprised nobody
> has been bitten by it before. It is possible, when expanding the table,
> to use an old pointer and overwrite the hash entry value upon return from
> find_entry. Anyway, this small patch fixes it. I have a testhash.c for
> the tests directory as well, if anyone thinks we need it.
>
> -- Jon
>
>
>
> Index: apr_hash.c
> ===================================================================
> RCS file: /home/cvspublic/apr/tables/apr_hash.c,v
> retrieving revision 1.16
> diff -u -u -r1.16 apr_hash.c
> --- apr_hash.c 2001/03/07 17:57:19 1.16
> +++ apr_hash.c 2001/03/09 00:32:27
> @@ -275,10 +275,7 @@
> he->klen = klen;
> he->val = val;
> *hep = he;
> - /* check that the collision rate isn't too high */
> - if (++ht->count > ht->max) {
> - expand_array(ht);
> - }
> + ht->count++;
> return hep;
> }
>
> @@ -310,6 +307,10 @@
> else {
> /* replace entry */
> (*hep)->val = val;
> + /* check that the collision rate isn't too high */
> + if (ht->count > ht->max) {
> + expand_array(ht);
> + }
> }
> }
> /* else key not present and val==NULL */
>
>
_______________________________________________________________________________
Ryan Bloom [EMAIL PROTECTED]
406 29th St.
San Francisco, CA 94131
-------------------------------------------------------------------------------