Mercurial > dovecot > original-hg > dovecot-1.2
changeset 7293:f78b83bf16b7 HEAD
Don't crash if ldap userdb lookup fails.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 26 Feb 2008 15:11:34 +0200 |
parents | d0520bb9177f |
children | 9e4c26471b19 |
files | src/auth/db-ldap.c src/auth/userdb-ldap.c |
diffstat | 2 files changed, 5 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/db-ldap.c Mon Feb 25 21:47:17 2008 +0200 +++ b/src/auth/db-ldap.c Tue Feb 26 15:11:34 2008 +0200 @@ -378,6 +378,8 @@ 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;
--- a/src/auth/userdb-ldap.c Mon Feb 25 21:47:17 2008 +0200 +++ b/src/auth/userdb-ldap.c Tue Feb 26 15:11:34 2008 +0200 @@ -22,7 +22,6 @@ struct userdb_ldap_request { struct ldap_request_search request; - struct auth_request *auth_request; userdb_callback_t *userdb_callback; }; @@ -49,7 +48,8 @@ { 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 @@ 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 @@ 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); }