]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Fixed crash if LDAP query returned multiple results.
authorTimo Sirainen <tss@iki.fi>
Tue, 21 May 2013 14:09:37 +0000 (17:09 +0300)
committerTimo Sirainen <tss@iki.fi>
Tue, 21 May 2013 14:09:37 +0000 (17:09 +0300)
src/auth/db-ldap.c

index 955e2e620fe28e67896f06f39e0bee3ef61775cb..c61af85944d96390be56a6b856cebfb20cd0366d 100644 (file)
@@ -825,8 +825,10 @@ static void db_ldap_request_free(struct ldap_request *request, LDAPMessage *res)
 
                if (srequest->result == res)
                        res = NULL;
-               if (srequest->result != NULL)
+               if (srequest->result != NULL) {
                        ldap_msgfree(srequest->result);
+                       srequest->result = NULL;
+               }
 
                if (array_is_created(&srequest->named_results)) {
                        array_foreach(&srequest->named_results, named_res) {
@@ -835,6 +837,7 @@ static void db_ldap_request_free(struct ldap_request *request, LDAPMessage *res)
                                if (named_res->result != NULL)
                                        ldap_msgfree(named_res->result);
                        }
+                       array_clear(&srequest->named_results);
                }
        }
        if (res != NULL)