Skip to content

Commit

Permalink
auth: Apply passdb/userdb { override_fields } only after caching
Browse files Browse the repository at this point in the history
Now they're not be unnecessarily saved to cache to waste memory. More
importantly they will always override the cached fields, which is required
for %variables to work.
  • Loading branch information
sirainen committed Jan 23, 2016
1 parent 57591c5 commit e150cd7
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions src/auth/auth-request.c
Expand Up @@ -676,6 +676,7 @@ static void
auth_request_verify_plain_callback_finish(enum passdb_result result,
struct auth_request *request)
{
passdb_template_export(request->passdb->passdb->override_fields_tmpl, request);
if (!auth_request_handle_passdb_callback(&result, request)) {
/* try next passdb */
auth_request_verify_plain(request, request->mech_password,
Expand All @@ -697,10 +698,9 @@ void auth_request_verify_plain_callback(enum passdb_result result,

auth_request_set_state(request, AUTH_REQUEST_STATE_MECH_CONTINUE);

if (result != PASSDB_RESULT_INTERNAL_FAILURE) {
passdb_template_export(passdb->override_fields_tmpl, request);
if (result != PASSDB_RESULT_INTERNAL_FAILURE)
auth_request_save_cache(request, result);
} else {
else {
/* lookup failed. if we're looking here only because the
request was expired in cache, fallback to using cached
expired record. */
Expand Down Expand Up @@ -807,6 +807,7 @@ auth_request_lookup_credentials_finish(enum passdb_result result,
size_t size,
struct auth_request *request)
{
passdb_template_export(request->passdb->passdb->override_fields_tmpl, request);
if (!auth_request_handle_passdb_callback(&result, request)) {
/* try next passdb */
if (request->skip_password_check &&
Expand Down Expand Up @@ -862,10 +863,9 @@ void auth_request_lookup_credentials_callback(enum passdb_result result,

auth_request_set_state(request, AUTH_REQUEST_STATE_MECH_CONTINUE);

if (result != PASSDB_RESULT_INTERNAL_FAILURE) {
passdb_template_export(passdb->override_fields_tmpl, request);
if (result != PASSDB_RESULT_INTERNAL_FAILURE)
auth_request_save_cache(request, result);
} else {
else {
/* lookup failed. if we're looking here only because the
request was expired in cache, fallback to using cached
expired record. */
Expand Down

0 comments on commit e150cd7

Please sign in to comment.