1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00

When we set a domain sid, force get_global_sam_sid() to do it's work again.

This should ensure that the value it returns is always consistant.

Andrew Bartlett
This commit is contained in:
Andrew Bartlett 0001-01-01 00:00:00 +00:00
parent 01be89eb43
commit a4392ede33
3 changed files with 16 additions and 3 deletions

View File

@ -209,7 +209,7 @@ LIBADS_OBJ = libads/ldap.o libads/ldap_printer.o libads/sasl.o \
LIBADS_SERVER_OBJ = libads/util.o libads/kerberos_verify.o
SECRETS_OBJ = passdb/secrets.o
SECRETS_OBJ = passdb/secrets.o passdb/machine_sid.o
LIBNMB_OBJ = libsmb/unexpected.o libsmb/namecache.o libsmb/nmblib.o \
libsmb/namequery.o libsmb/conncache.o
@ -287,7 +287,7 @@ LOCKING_OBJ = locking/locking.o locking/brlock.o locking/posix.o
PASSDB_GET_SET_OBJ = passdb/pdb_get_set.o
PASSDB_OBJ = $(PASSDB_GET_SET_OBJ) passdb/passdb.o passdb/pdb_interface.o \
passdb/machine_sid.o passdb/util_sam_sid.o passdb/pdb_compat.o \
passdb/util_sam_sid.o passdb/pdb_compat.o \
passdb/privileges.o passdb/lookup_sid.o @PDB_STATIC@ passdb/pdb_sql.o
XML_OBJ = passdb/pdb_xml.o

View File

@ -198,3 +198,10 @@ DOM_SID *get_global_sam_sid(void)
return global_sam_sid;
}
/**
* Force get_global_sam_sid to requery the backends
*/
void reset_global_sam_sid()
{
SAFE_FREE(global_sam_sid);
}

View File

@ -99,10 +99,16 @@ BOOL secrets_delete(const char *key)
BOOL secrets_store_domain_sid(const char *domain, const DOM_SID *sid)
{
fstring key;
BOOL ret;
slprintf(key, sizeof(key)-1, "%s/%s", SECRETS_DOMAIN_SID, domain);
strupper_m(key);
return secrets_store(key, sid, sizeof(DOM_SID));
ret = secrets_store(key, sid, sizeof(DOM_SID));
/* Force a re-query, in case we modified our domain */
if (ret)
reset_global_sam_sid();
return ret;
}
BOOL secrets_fetch_domain_sid(const char *domain, DOM_SID *sid)