From 33fca098b2ec5274de16ff4167bd5ada4c0753d8 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 17 Feb 2011 14:33:50 -0500 Subject: Remove cached user entry if initgroups returns ENOENT This behavior was present for getpwnam() but was lacking for initgroups. --- src/providers/ldap/ldap_id.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src') diff --git a/src/providers/ldap/ldap_id.c b/src/providers/ldap/ldap_id.c index 09f0026b0..9a2342800 100644 --- a/src/providers/ldap/ldap_id.c +++ b/src/providers/ldap/ldap_id.c @@ -631,6 +631,17 @@ static void groups_by_user_done(struct tevent_req *subreq) return; } + if (ret == ENOENT) { + ret = sysdb_delete_user(state, + state->ctx->be->sysdb, + state->ctx->be->domain, + state->name, 0); + if (ret != EOK && ret != ENOENT) { + tevent_req_error(req, ret); + return; + } + } + state->dp_error = DP_ERR_OK; tevent_req_done(req); } -- cgit