Hi all,

Anyone willing to take a look at the following patch (then the latest round of LDAP fixes are put to bed):

*) Fix a segfault in the LDAP cache purge. PR 24801
modules/ldap/util_ldap_cache_mgr.c: 1.9, 1.10
+1: minfrin, bnicholes
bnicholes - backporting modules/ldap/util_ldap_cache_mgr.c: r1.7 below
should eliminate the need to backport the "else" condition included
in this patch.
minfrin: The excess "else" condition has been removed in v1.10.

===================================================================
RCS file: /home/cvspublic/httpd-2.0/modules/ldap/util_ldap_cache_mgr.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- httpd-2.0/modules/ldap/util_ldap_cache_mgr.c        2004/09/13 11:11:32     1.8
+++ httpd-2.0/modules/ldap/util_ldap_cache_mgr.c        2004/09/19 23:00:25     1.9
@@ -173,7 +173,7 @@
 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)
@@ -184,7 +184,8 @@
     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;
@@ -192,10 +193,11 @@
                 util_ald_free(cache, p);
                 cache->numentries--;
                 cache->npurged++;
-                p = q;
+                p = *pp = q;
             }
             else {
-                p = p->next;
+                pp = &(p->next);
+                p = *pp;
             }
         }
     }

Regards,
Graham
--

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature



Reply via email to