Loading CHANGES +3 −0 Original line number Diff line number Diff line Changes with Apache 2.0.26-dev *) Added some bulletproofing to memory allocation in the LDAP cache code. [Graham Leggett] Changes with Apache 2.0.25 *) Move the installed /manual directory out of the /htdocs/ tree, so Loading modules/ldap/util_ldap_cache.c +39 −14 Original line number Diff line number Diff line Loading @@ -90,12 +90,20 @@ void *util_ldap_url_node_copy(void *c) util_url_node_t *n = (util_url_node_t *)c; util_url_node_t *node = (util_url_node_t *)util_ald_alloc(sizeof(util_url_node_t)); node->url = util_ald_strdup(n->url); if (node) { if (!(node->url = util_ald_strdup(n->url))) { util_ald_free(node->url); return NULL; } node->search_cache = n->search_cache; node->compare_cache = n->compare_cache; node->dn_compare_cache = n->dn_compare_cache; return node; } else { return NULL; } } void util_ldap_url_node_free(void *n) { Loading Loading @@ -200,13 +208,22 @@ void *util_ldap_compare_node_copy(void *c) { util_compare_node_t *n = (util_compare_node_t *)c; util_compare_node_t *node = (util_compare_node_t *)util_ald_alloc(sizeof(util_compare_node_t)); node->dn = util_ald_strdup(n->dn); node->attrib = util_ald_strdup(n->attrib); node->value = util_ald_strdup(n->value); if (node) { if (!(node->dn = util_ald_strdup(n->dn)) || !(node->attrib = util_ald_strdup(n->attrib)) || !(node->value = util_ald_strdup(n->value))) { util_ldap_compare_node_free(node); return NULL; } node->lastcompare = n->lastcompare; node->result = n->result; return node; } else { return NULL; } } void util_ldap_compare_node_free(void *n) { Loading Loading @@ -234,10 +251,18 @@ void *util_ldap_dn_compare_node_copy(void *c) { util_dn_compare_node_t *n = (util_dn_compare_node_t *)c; util_dn_compare_node_t *node = (util_dn_compare_node_t *)util_ald_alloc(sizeof(util_dn_compare_node_t)); node->reqdn = util_ald_strdup(n->reqdn); node->dn = util_ald_strdup(n->dn); if (node) { if (!(node->reqdn = util_ald_strdup(n->reqdn)) || !(node->dn = util_ald_strdup(n->dn))) { util_ldap_dn_compare_node_free(node); return NULL; } return node; } else { return NULL; } } void util_ldap_dn_compare_node_free(void *n) { Loading modules/ldap/util_ldap_cache.h +1 −1 Original line number Diff line number Diff line Loading @@ -193,7 +193,7 @@ void util_ldap_dn_compare_node_free(void *n); /* util_ldap_cache_mgr.c */ void util_ald_free(const void *ptr); void *util_ald_alloc(int size); void *util_ald_alloc(unsigned long size); const char *util_ald_strdup(const char *s); unsigned long util_ald_hash_string(int nstr, ...); void util_ald_cache_purge(util_ald_cache_t *cache); Loading modules/ldap/util_ldap_cache_mgr.c +7 −2 Original line number Diff line number Diff line Loading @@ -128,8 +128,10 @@ void util_ald_free(const void *ptr) #endif } void *util_ald_alloc(int size) void *util_ald_alloc(unsigned long size) { if (0 == size) return NULL; #if APR_HAS_SHARED_MEMORY if (util_ldap_shm) { return (void *)apr_shm_calloc(util_ldap_shm, size); Loading @@ -137,7 +139,7 @@ void *util_ald_alloc(int size) return (void *)calloc(sizeof(char), size); } #else return (void *)calloc(size); return (void *)calloc(sizeof(char), size); #endif } Loading Loading @@ -203,6 +205,9 @@ void util_ald_cache_purge(util_ald_cache_t *cache) util_cache_node_t *p, *q; apr_time_t t; if (!cache) return; cache->last_purge = apr_time_now(); cache->npurged = 0; cache->numpurges++; Loading Loading
CHANGES +3 −0 Original line number Diff line number Diff line Changes with Apache 2.0.26-dev *) Added some bulletproofing to memory allocation in the LDAP cache code. [Graham Leggett] Changes with Apache 2.0.25 *) Move the installed /manual directory out of the /htdocs/ tree, so Loading
modules/ldap/util_ldap_cache.c +39 −14 Original line number Diff line number Diff line Loading @@ -90,12 +90,20 @@ void *util_ldap_url_node_copy(void *c) util_url_node_t *n = (util_url_node_t *)c; util_url_node_t *node = (util_url_node_t *)util_ald_alloc(sizeof(util_url_node_t)); node->url = util_ald_strdup(n->url); if (node) { if (!(node->url = util_ald_strdup(n->url))) { util_ald_free(node->url); return NULL; } node->search_cache = n->search_cache; node->compare_cache = n->compare_cache; node->dn_compare_cache = n->dn_compare_cache; return node; } else { return NULL; } } void util_ldap_url_node_free(void *n) { Loading Loading @@ -200,13 +208,22 @@ void *util_ldap_compare_node_copy(void *c) { util_compare_node_t *n = (util_compare_node_t *)c; util_compare_node_t *node = (util_compare_node_t *)util_ald_alloc(sizeof(util_compare_node_t)); node->dn = util_ald_strdup(n->dn); node->attrib = util_ald_strdup(n->attrib); node->value = util_ald_strdup(n->value); if (node) { if (!(node->dn = util_ald_strdup(n->dn)) || !(node->attrib = util_ald_strdup(n->attrib)) || !(node->value = util_ald_strdup(n->value))) { util_ldap_compare_node_free(node); return NULL; } node->lastcompare = n->lastcompare; node->result = n->result; return node; } else { return NULL; } } void util_ldap_compare_node_free(void *n) { Loading Loading @@ -234,10 +251,18 @@ void *util_ldap_dn_compare_node_copy(void *c) { util_dn_compare_node_t *n = (util_dn_compare_node_t *)c; util_dn_compare_node_t *node = (util_dn_compare_node_t *)util_ald_alloc(sizeof(util_dn_compare_node_t)); node->reqdn = util_ald_strdup(n->reqdn); node->dn = util_ald_strdup(n->dn); if (node) { if (!(node->reqdn = util_ald_strdup(n->reqdn)) || !(node->dn = util_ald_strdup(n->dn))) { util_ldap_dn_compare_node_free(node); return NULL; } return node; } else { return NULL; } } void util_ldap_dn_compare_node_free(void *n) { Loading
modules/ldap/util_ldap_cache.h +1 −1 Original line number Diff line number Diff line Loading @@ -193,7 +193,7 @@ void util_ldap_dn_compare_node_free(void *n); /* util_ldap_cache_mgr.c */ void util_ald_free(const void *ptr); void *util_ald_alloc(int size); void *util_ald_alloc(unsigned long size); const char *util_ald_strdup(const char *s); unsigned long util_ald_hash_string(int nstr, ...); void util_ald_cache_purge(util_ald_cache_t *cache); Loading
modules/ldap/util_ldap_cache_mgr.c +7 −2 Original line number Diff line number Diff line Loading @@ -128,8 +128,10 @@ void util_ald_free(const void *ptr) #endif } void *util_ald_alloc(int size) void *util_ald_alloc(unsigned long size) { if (0 == size) return NULL; #if APR_HAS_SHARED_MEMORY if (util_ldap_shm) { return (void *)apr_shm_calloc(util_ldap_shm, size); Loading @@ -137,7 +139,7 @@ void *util_ald_alloc(int size) return (void *)calloc(sizeof(char), size); } #else return (void *)calloc(size); return (void *)calloc(sizeof(char), size); #endif } Loading Loading @@ -203,6 +205,9 @@ void util_ald_cache_purge(util_ald_cache_t *cache) util_cache_node_t *p, *q; apr_time_t t; if (!cache) return; cache->last_purge = apr_time_now(); cache->npurged = 0; cache->numpurges++; Loading