mirror of
https://github.com/apache/httpd.git
synced 2025-08-07 04:02:58 +03:00
* 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
This commit is contained in:
@@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user