diff options
author | Andrew Bartlett <abartlet@samba.org> | 2008-02-06 16:14:09 +1100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2008-02-06 16:14:09 +1100 |
commit | 07c8cdec4767731a278d5c73a4ebaceeaced5288 (patch) | |
tree | 9b0e3aefe7ac54f1821a6348f041d6462dce909a | |
parent | 24d0587752ca81ac9e35c6c4dbcadb87455f5ded (diff) | |
parent | c9ea65e4ced86d26dfa8c1c540a57dc633b217ba (diff) | |
download | samba-07c8cdec4767731a278d5c73a4ebaceeaced5288.tar.gz samba-07c8cdec4767731a278d5c73a4ebaceeaced5288.tar.bz2 samba-07c8cdec4767731a278d5c73a4ebaceeaced5288.zip |
Merge branch 'v4-0-test' of git://git.samba.org/samba into 4-0-abartlet
(This used to be commit 594ff923295c7420167aa899ec6030de07038625)
-rw-r--r-- | source4/dsdb/common/sidmap.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/source4/dsdb/common/sidmap.c b/source4/dsdb/common/sidmap.c index 5c170463bb..088dc6bd96 100644 --- a/source4/dsdb/common/sidmap.c +++ b/source4/dsdb/common/sidmap.c @@ -123,10 +123,10 @@ static NTSTATUS sidmap_primary_domain_sid(struct sidmap_context *sidmap, /* map a sid to a unix uid */ -_PUBLIC_ NTSTATUS sidmap_sid_to_unixuid(struct sidmap_context *sidmap, - struct dom_sid *sid, uid_t *uid) +_PUBLIC_ NTSTATUS sidmap_sid_to_unixuid(struct sidmap_context *sidmap, + const struct dom_sid *sid, uid_t *uid) { - const char *attrs[] = { "sAMAccountName", "uidNumber", + const char *attrs[] = { "sAMAccountName", "uidNumber", "sAMAccountType", "unixName", NULL }; int ret; const char *s; @@ -137,15 +137,17 @@ _PUBLIC_ NTSTATUS sidmap_sid_to_unixuid(struct sidmap_context *sidmap, tmp_ctx = talloc_new(sidmap); - ret = gendb_search(sidmap->samctx, tmp_ctx, NULL, &res, attrs, - "objectSid=%s", ldap_encode_ndr_dom_sid(tmp_ctx, sid)); + ret = gendb_search(sidmap->samctx, tmp_ctx, NULL, &res, attrs, + "objectSid=%s", + ldap_encode_ndr_dom_sid(tmp_ctx, sid)); + if (ret != 1) { goto allocated_sid; } /* make sure its a user, not a group */ if (!is_user_account(res[0])) { - DEBUG(0,("sid_to_unixuid: sid %s is not an account!\n", + DEBUG(0,("sid_to_unixuid: sid %s is not an account!\n", dom_sid_string(tmp_ctx, sid))); talloc_free(tmp_ctx); return NT_STATUS_INVALID_SID; @@ -261,9 +263,9 @@ _PUBLIC_ bool sidmap_sid_is_group(struct sidmap_context *sidmap, struct dom_sid map a sid to a unix gid */ _PUBLIC_ NTSTATUS sidmap_sid_to_unixgid(struct sidmap_context *sidmap, - struct dom_sid *sid, gid_t *gid) + const struct dom_sid *sid, gid_t *gid) { - const char *attrs[] = { "sAMAccountName", "gidNumber", + const char *attrs[] = { "sAMAccountName", "gidNumber", "unixName", "sAMAccountType", NULL }; int ret; const char *s; @@ -355,7 +357,7 @@ allocated_sid: */ _PUBLIC_ NTSTATUS sidmap_uid_to_sid(struct sidmap_context *sidmap, TALLOC_CTX *mem_ctx, - uid_t uid, struct dom_sid **sid) + const uid_t uid, struct dom_sid **sid) { const char *attrs[] = { "sAMAccountName", "objectSid", "sAMAccountType", NULL }; int ret, i; @@ -453,7 +455,7 @@ allocate_sid: */ _PUBLIC_ NTSTATUS sidmap_gid_to_sid(struct sidmap_context *sidmap, TALLOC_CTX *mem_ctx, - gid_t gid, struct dom_sid **sid) + const gid_t gid, struct dom_sid **sid) { const char *attrs[] = { "sAMAccountName", "objectSid", "sAMAccountType", NULL }; int ret, i; |