diff options
author | Simo Sorce <idra@samba.org> | 2011-09-26 17:55:47 -0400 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2011-10-12 19:28:12 +0200 |
commit | 995d1567265be178b4e45f79ea4562a7041ffa52 (patch) | |
tree | 97eed8a77f5332f0aa73109454037e6f87250cdb /source3/passdb/passdb.c | |
parent | fc320551d84508371ab1c082752515d538648f49 (diff) | |
download | samba-995d1567265be178b4e45f79ea4562a7041ffa52.tar.gz samba-995d1567265be178b4e45f79ea4562a7041ffa52.tar.bz2 samba-995d1567265be178b4e45f79ea4562a7041ffa52.zip |
s3-group-mapping: Remove fstrings from GROUP_MAP.
Signed-off-by: Andreas Schneider <asn@samba.org>
Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Wed Oct 12 19:28:12 CEST 2011 on sn-devel-104
Diffstat (limited to 'source3/passdb/passdb.c')
-rw-r--r-- | source3/passdb/passdb.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c index 62dcb5dedd..276e0314c8 100644 --- a/source3/passdb/passdb.c +++ b/source3/passdb/passdb.c @@ -591,7 +591,7 @@ bool algorithmic_pdb_rid_is_user(uint32_t rid) bool lookup_global_sam_name(const char *name, int flags, uint32_t *rid, enum lsa_SidType *type) { - GROUP_MAP map; + GROUP_MAP *map; bool ret; /* Windows treats "MACHINE\None" as a special name for @@ -645,24 +645,32 @@ bool lookup_global_sam_name(const char *name, int flags, uint32_t *rid, * Maybe it is a group ? */ + map = talloc_zero(NULL, GROUP_MAP); + if (!map) { + return false; + } + become_root(); - ret = pdb_getgrnam(&map, name); + ret = pdb_getgrnam(map, name); unbecome_root(); if (!ret) { + TALLOC_FREE(map); return False; } /* BUILTIN groups are looked up elsewhere */ - if (!sid_check_is_in_our_domain(&map.sid)) { + if (!sid_check_is_in_our_domain(&map->sid)) { DEBUG(10, ("Found group %s (%s) not in our domain -- " - "ignoring.", name, sid_string_dbg(&map.sid))); + "ignoring.", name, sid_string_dbg(&map->sid))); + TALLOC_FREE(map); return False; } /* yes it's a mapped group */ - sid_peek_rid(&map.sid, rid); - *type = map.sid_name_use; + sid_peek_rid(&map->sid, rid); + *type = map->sid_name_use; + TALLOC_FREE(map); return True; } |