Mercurial > dovecot > core-2.2
changeset 22215:05aff1909f97
auth: Don't lose all forward_ fields if the first passdb lookup fails.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Tue, 30 May 2017 16:57:45 +0300 |
parents | 1b4a0735b158 |
children | 415130854a53 |
files | src/auth/auth-request.c |
diffstat | 1 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/auth-request.c Wed May 24 20:19:11 2017 +0200 +++ b/src/auth/auth-request.c Tue May 30 16:57:45 2017 +0300 @@ -406,10 +406,13 @@ request->debug = TRUE; else if (strcmp(key, "client_id") == 0) request->client_id = p_strdup(request->pool, value); - else if (strcmp(key, "forward_fields") == 0) + else if (strcmp(key, "forward_fields") == 0) { auth_fields_import_prefixed(request->extra_fields, "forward_", value, 0); - else + /* make sure the forward_ fields aren't deleted by + auth_fields_rollback() if the first passdb lookup fails. */ + auth_fields_snapshot(request->extra_fields); + } else return FALSE; /* NOTE: keep in sync with auth_request_export() */ return TRUE;