Commit 2f8ee3ed authored by Joe Orton's avatar Joe Orton
Browse files

* modules/ldap/util_ldap_cache_mgr.c (util_ald_cache_insert): Fix a

cache corruption case: ensure that there is room in the cache for a
copy of the payload before inserting the node.

PR: 34209


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@225746 13f79535-47bb-0310-9956-ffa450edef68
parent c43c4b51
Loading
Loading
Loading
Loading
+8 −1
Changes for modules/ldap/util_ldap_cache_mgr.c: 8 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -406,11 +406,18 @@ void *util_ald_cache_insert(util_ald_cache_t *cache, void *payload)
        return NULL;
    }

    /* Take a copy of the payload before proceeeding. */
    payload = (*cache->copy)(cache, payload);
    if (!payload) {
        util_ald_free(cache, node);
        return NULL;
    }

    /* populate the entry */
    cache->inserts++;
    hashval = (*cache->hash)(payload) % cache->size;
    node->add_time = apr_time_now();
    node->payload = (*cache->copy)(cache, payload);
    node->payload = payload;
    node->next = cache->nodes[hashval];
    cache->nodes[hashval] = node;