s3: auth: Move the declaration of struct dom_sid tmp_sid to function level scope.
authorJeremy Allison <jra@samba.org>
Thu, 26 May 2016 23:42:42 +0000 (16:42 -0700)
committerKarolin Seeger <kseeger@samba.org>
Wed, 1 Jun 2016 10:35:23 +0000 (12:35 +0200)
It's referred to outside of the {} brace scope it was defined in by
the following code:

            uid_to_unix_users_sid(*uid, &tmp_sid);
            user_sid = &tmp_sid;

As tmp_sid was going out of scope, user_sid was
being incorrectly set in the token sid list.

I think this *may* be the root cause of:

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

But even if not this is an obvious error that must
be fixed.

Back-port from master: 1b3b89345480d16222da00753f973e36e2e0f92d

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(v4-2-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-2-test): Wed Jun  1 12:35:23 CEST 2016 on sn-devel-104

source3/auth/token_util.c

index 9bb014c32cd0eb9530f079bd4b83a808e703925b..f6ce1315c0825ca8de01f9dec26079e2aabf3eaa 100644 (file)
@@ -673,6 +673,7 @@ static NTSTATUS create_token_from_sid(TALLOC_CTX *mem_ctx,
        gid_t *gids;
        struct dom_sid *group_sids;
        struct dom_sid unix_group_sid;
+       struct dom_sid tmp_sid;
        uint32_t num_group_sids;
        uint32_t num_gids;
        uint32_t i;
@@ -756,7 +757,6 @@ static NTSTATUS create_token_from_sid(TALLOC_CTX *mem_ctx,
                *uid = sam_acct->unix_pw->pw_uid;
 
        } else  if (sid_check_is_in_unix_users(user_sid)) {
-               struct dom_sid tmp_sid;
                uint32_t getgroups_num_group_sids;
                /* This is a unix user not in passdb. We need to ask nss
                 * directly, without consulting passdb */