Index: src/cache.c =================================================================== --- src/cache.c (Revision 63675) +++ src/cache.c (Arbeitskopie) @@ -107,7 +107,6 @@ cache_filter.scope = LDAP_SCOPE_SUBTREE; } else { FREE(cache_filter.filter); - FREE(cache_filter.base); } } @@ -430,8 +429,9 @@ char *lower_dn; int rv = 0; - if (cache_filter.filter && cache_entry_ldap_filter_match(cache_filters, dn, entry)) + if (cache_filter.filter && cache_entry_ldap_filter_match(cache_filters, dn, entry)) { return rv; + } lower_dn = lower_utf8(dn); rv = cache_update_entry(id, lower_dn, entry); Index: src/utils.h =================================================================== --- src/utils.h (Revision 63675) +++ src/utils.h (Arbeitskopie) @@ -5,8 +5,10 @@ #define FREE(ptr) \ - free(ptr); \ - ptr = NULL; + if(ptr) { \ + free(ptr); \ + ptr = NULL; \ + } static inline bool BERSTREQ(const struct berval *ber, const char *str, size_t len) {