1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-08 21:18:16 +03:00

idmap_hash: don't return ID_REQUIRE_TYPE if the domain is known in the netsamlogon cache

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15319

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit ee820553fd)
This commit is contained in:
Stefan Metzmacher 2019-03-21 16:54:31 +01:00 committed by Jule Anger
parent eb4129d3cc
commit 750865aca3

View File

@ -25,6 +25,7 @@
#include "ads.h"
#include "nss_info.h"
#include "../libcli/security/dom_sid.h"
#include "libsmb/samlogon_cache.h"
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_IDMAP
@ -287,6 +288,21 @@ static NTSTATUS idmap_hash_sid_to_id(struct sid_hash_table *hashed_domains,
goto return_mapping;
}
/*
* Check of last resort: A domain is valid if a user from that
* domain has recently logged in. The samlogon_cache these
* days also stores the domain sid.
*/
if (netsamlogon_cache_have(&sid)) {
/*
* We keep the legacy behavior and
* just return the mapping, but
* the reverse mapping would not
* still not work.
*/
goto return_mapping;
}
if (id->xid.type == ID_TYPE_NOT_SPECIFIED) {
/*
* idmap_hash used to bounce back the requested type,