Is this suitable for 1.5 and 1.6 as well? On Jun 22, 2014, at 11:10 AM, [email protected] wrote:
> Author: covener > Date: Sun Jun 22 15:10:20 2014 > New Revision: 1604598 > > URL: http://svn.apache.org/r1604598 > Log: > apr_skiplist becomes corrupt when nodes are reused. > > Submitted By: Takashi Sato <takashi tks st>, covener > committed By: covener > > > Modified: > apr/apr/trunk/CHANGES > apr/apr/trunk/tables/apr_skiplist.c > > Modified: apr/apr/trunk/CHANGES > URL: > http://svn.apache.org/viewvc/apr/apr/trunk/CHANGES?rev=1604598&r1=1604597&r2=1604598&view=diff > ============================================================================== > --- apr/apr/trunk/CHANGES [utf-8] (original) > +++ apr/apr/trunk/CHANGES [utf-8] Sun Jun 22 15:10:20 2014 > @@ -1,6 +1,10 @@ > -*- coding: utf-8 -*- > Changes for APR 2.0.0 > > + *) apr_skiplist: Fix potential corruption of skiplists leading to > + results or crashes. [Takashi Sato <takashi tks st>, Eric Covener] > + PR 56654. > + > *) apr_skiplist: Add apr_skiplist_add() to support multiple values. > > *) apr_allocator: Be less wasteful and don't return a memnode that is > > Modified: apr/apr/trunk/tables/apr_skiplist.c > URL: > http://svn.apache.org/viewvc/apr/apr/trunk/tables/apr_skiplist.c?rev=1604598&r1=1604597&r2=1604598&view=diff > ============================================================================== > --- apr/apr/trunk/tables/apr_skiplist.c (original) > +++ apr/apr/trunk/tables/apr_skiplist.c Sun Jun 22 15:10:20 2014 > @@ -379,11 +379,9 @@ static apr_skiplistnode *insert_compare( > (apr_skiplistnode *)apr_skiplist_alloc(sl, > sizeof(apr_skiplistnode)); > sl->top->up->down = sl->top; > sl->top = sl->topend = sl->top->up; > -#if 0 > sl->top->prev = sl->top->next = sl->top->nextindex = > sl->top->previndex = sl->top->up = NULL; > sl->top->data = NULL; > -#endif > sl->top->sl = sl; > } > ch = sl->height; > >
