PR:
Obtained from:
Submitted by: Jess Holle <jessh ptc.com>
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105206
13f79535-47bb-0310-9956-
ffa450edef68
[Remove entries to the current 2.0 section below, when backported]
+ *) Fix a segfault in the LDAP cache purge. [Jess Holle <jessh ptc.com>]
+
*) mod_rewrite: Handle per-location rules when r->filename is unset.
Previously this would segfault or simply not match as expected,
depending on the platform. [Jeff Trawick]
void util_ald_cache_purge(util_ald_cache_t *cache)
{
unsigned long i;
- util_cache_node_t *p, *q;
+ util_cache_node_t *p, *q, **pp;
apr_time_t t;
if (!cache)
cache->numpurges++;
for (i=0; i < cache->size; ++i) {
- p = cache->nodes[i];
+ pp = cache->nodes + i;
+ p = *pp;
while (p != NULL) {
if (p->add_time < cache->marktime) {
q = p->next;
util_ald_free(cache, p);
cache->numentries--;
cache->npurged++;
- p = q;
+ p = *pp = q;
}
else {
- p = p->next;
+ pp = &(p->next);
+ p = *pp;
}
}
}
newcurl = util_ald_cache_insert(st->util_ldap_cache, &curl);
}
+ else
+ newcurl = NULL;
return newcurl;
}