dovecot: Don't crash if ldap userdb lookup fails.
dovecot at dovecot.org
dovecot at dovecot.org
Tue Feb 26 15:09:18 EET 2008
details: http://hg.dovecot.org/dovecot/rev/2e3f6188e164
changeset: 7288:2e3f6188e164
user: Timo Sirainen <tss at iki.fi>
date: Tue Feb 26 15:11:37 2008 +0200
description:
Don't crash if ldap userdb lookup fails.
diffstat:
2 files changed, 5 insertions(+), 3 deletions(-)
src/auth/db-ldap.c | 2 ++
src/auth/userdb-ldap.c | 6 +++---
diffs (49 lines):
diff -r 8a3a06fc5d10 -r 2e3f6188e164 src/auth/db-ldap.c
--- a/src/auth/db-ldap.c Mon Feb 25 21:47:20 2008 +0200
+++ b/src/auth/db-ldap.c Tue Feb 26 15:11:37 2008 +0200
@@ -378,6 +378,8 @@ void db_ldap_request(struct ldap_connect
void db_ldap_request(struct ldap_connection *conn,
struct ldap_request *request)
{
+ i_assert(request->auth_request != NULL);
+
request->msgid = -1;
request->create_time = ioloop_time;
diff -r 8a3a06fc5d10 -r 2e3f6188e164 src/auth/userdb-ldap.c
--- a/src/auth/userdb-ldap.c Mon Feb 25 21:47:20 2008 +0200
+++ b/src/auth/userdb-ldap.c Tue Feb 26 15:11:37 2008 +0200
@@ -22,7 +22,6 @@ struct ldap_userdb_module {
struct userdb_ldap_request {
struct ldap_request_search request;
- struct auth_request *auth_request;
userdb_callback_t *userdb_callback;
};
@@ -49,7 +48,8 @@ static void userdb_ldap_lookup_callback(
{
struct userdb_ldap_request *urequest =
(struct userdb_ldap_request *) request;
- struct auth_request *auth_request = urequest->auth_request;
+ struct auth_request *auth_request =
+ urequest->request.request.auth_request;
LDAPMessage *entry;
enum userdb_result result = USERDB_RESULT_INTERNAL_FAILURE;
@@ -88,7 +88,6 @@ static void userdb_ldap_lookup(struct au
auth_request_ref(auth_request);
request = p_new(auth_request->pool, struct userdb_ldap_request, 1);
- request->auth_request = auth_request;
request->userdb_callback = callback;
vars = auth_request_get_var_expand_table(auth_request, ldap_escape);
@@ -110,6 +109,7 @@ static void userdb_ldap_lookup(struct au
attr_names == NULL ? "(all)" :
t_strarray_join(attr_names, ","));
+ request->request.request.auth_request = auth_request;
request->request.request.callback = userdb_ldap_lookup_callback;
db_ldap_request(conn, &request->request.request);
}
More information about the dovecot-cvs
mailing list