diff options
Diffstat (limited to 'source3/winbindd/winbindd_pam.c')
-rw-r--r-- | source3/winbindd/winbindd_pam.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/source3/winbindd/winbindd_pam.c b/source3/winbindd/winbindd_pam.c index 7ec0bff9a7..5347c1cd45 100644 --- a/source3/winbindd/winbindd_pam.c +++ b/source3/winbindd/winbindd_pam.c @@ -1527,7 +1527,11 @@ process_result: goto done; } - wcache_invalidate_samlogon(find_domain_from_name(name_domain), info3); + sid_compose(&user_sid, info3->base.domain_sid, + info3->base.rid); + + wcache_invalidate_samlogon(find_domain_from_name(name_domain), + &user_sid); netsamlogon_cache_store(name_user, info3); /* save name_to_sid info as early as possible (only if @@ -1535,8 +1539,6 @@ process_result: the cache entry by storing the seq_num for the wrong domain). */ if ( domain->primary ) { - sid_compose(&user_sid, info3->base.domain_sid, - info3->base.rid); cache_name2sid(domain, name_domain, name_user, SID_NAME_USER, &user_sid); } @@ -1744,8 +1746,12 @@ enum winbindd_result winbindd_dual_pam_auth_crap(struct winbindd_domain *domain, process_result: if (NT_STATUS_IS_OK(result)) { + struct dom_sid user_sid; - wcache_invalidate_samlogon(find_domain_from_name(name_domain), info3); + sid_compose(&user_sid, info3->base.domain_sid, + info3->base.rid); + wcache_invalidate_samlogon(find_domain_from_name(name_domain), + &user_sid); netsamlogon_cache_store(name_user, info3); /* Check if the user is in the right group */ |