changeset 3212:eb840633c9bf HEAD

LDAP crashfixes.
author Timo Sirainen <tss@iki.fi>
date Wed, 16 Mar 2005 21:03:58 +0200
parents 4f3e4c8e458f
children 69b056a3657f
files src/auth/db-ldap.c src/auth/passdb-ldap.c src/auth/userdb-ldap.c
diffstat 3 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/db-ldap.c	Wed Mar 16 00:16:52 2005 +0200
+++ b/src/auth/db-ldap.c	Wed Mar 16 21:03:58 2005 +0200
@@ -281,8 +281,9 @@
 	t_push();
 	attr = t_strsplit(attrlist, ",");
 
+	/* @UNSAFE */
 	for (size = 0; attr[size] != NULL; size++) ;
-	conn->attr_names = p_new(conn->pool, char *, size);
+	conn->attr_names = p_new(conn->pool, char *, size + 1);
 
 	for (i = 0; i < size; i++) {
 		p = strchr(attr[i], '=');
@@ -394,6 +395,7 @@
 {
 	if (--conn->refcount > 0)
 		return;
+	i_assert(conn->refcount == 0);
 
 	ldap_conn_close(conn);
 
--- a/src/auth/passdb-ldap.c	Wed Mar 16 00:16:52 2005 +0200
+++ b/src/auth/passdb-ldap.c	Wed Mar 16 21:03:58 2005 +0200
@@ -234,7 +234,6 @@
 {
 	db_ldap_unref(passdb_ldap_conn);
 	i_free(passdb_ldap_cache_key);
-	i_free(passdb_ldap_conn);
 }
 
 struct passdb_module passdb_ldap = {
--- a/src/auth/userdb-ldap.c	Wed Mar 16 00:16:52 2005 +0200
+++ b/src/auth/userdb-ldap.c	Wed Mar 16 21:03:58 2005 +0200
@@ -211,7 +211,6 @@
 static void userdb_ldap_deinit(void)
 {
 	db_ldap_unref(userdb_ldap_conn);
-	i_free(userdb_ldap_conn);
 }
 
 struct userdb_module userdb_ldap = {