Mercurial > dovecot > original-hg > dovecot-1.2
changeset 2994:1ed01cfed3a9 HEAD
Fixed crashing due to free()ing too much.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 19 Dec 2004 07:30:20 +0200 |
parents | 2c92a14458e6 |
children | de524f4a1075 |
files | src/auth/db-ldap.c src/auth/passdb-ldap.c src/auth/userdb-ldap.c |
diffstat | 3 files changed, 2 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/db-ldap.c Sun Dec 19 07:11:05 2004 +0200 +++ b/src/auth/db-ldap.c Sun Dec 19 07:30:20 2004 +0200 @@ -118,6 +118,7 @@ if (!conn->connected) { if (!db_ldap_connect(conn)) { request->callback(conn, request, NULL); + i_free(request); return; } } @@ -127,6 +128,7 @@ i_error("LDAP: ldap_search() failed (filter %s): %s", filter, ldap_get_error(conn)); request->callback(conn, request, NULL); + i_free(request); return; }
--- a/src/auth/passdb-ldap.c Sun Dec 19 07:11:05 2004 +0200 +++ b/src/auth/passdb-ldap.c Sun Dec 19 07:30:20 2004 +0200 @@ -121,7 +121,6 @@ password, scheme, ldap_request->callback.lookup_credentials, auth_request); - i_free(request); return; } @@ -129,7 +128,6 @@ if (password == NULL) { ldap_request->callback.verify_plain(PASSDB_RESULT_USER_UNKNOWN, auth_request); - i_free(request); return; } @@ -147,7 +145,6 @@ ldap_request->callback.verify_plain(ret > 0 ? PASSDB_RESULT_OK : PASSDB_RESULT_PASSWORD_MISMATCH, auth_request); - i_free(request); } static void ldap_lookup_pass(struct auth_request *auth_request,
--- a/src/auth/userdb-ldap.c Sun Dec 19 07:11:05 2004 +0200 +++ b/src/auth/userdb-ldap.c Sun Dec 19 07:30:20 2004 +0200 @@ -99,7 +99,6 @@ i_error("LDAP: ldap_search() failed: %s", ldap_err2string(ret)); urequest->userdb_callback(NULL, request->context); - i_free(urequest); return; } @@ -108,7 +107,6 @@ if (res != NULL) i_error("LDAP: Authenticated user not found"); urequest->userdb_callback(NULL, request->context); - i_free(urequest); return; } @@ -142,14 +140,12 @@ user.virtual_user); } else { urequest->userdb_callback(&user, request->context); - i_free(urequest); t_pop(); return; } /* error */ urequest->userdb_callback(NULL, request->context); - i_free(urequest); t_pop(); }