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
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;