Commit 5be2af48 authored by Volker Lendecke's avatar Volker Lendecke Committed by Gerald (Jerry) Carter
Browse files

r1175: Nowadays we actually do have local groups, so add the corresponding SIDs to

the NT token we build.

Thanks to Guenther Deschner <gd@sernet.de>.

Volker
(This used to be commit 2f9143dee901f7fc9e5ff0218527f1f4cff1991e)
parent bd178fd7
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -1207,7 +1207,7 @@ NTSTATUS make_server_info_info3(TALLOC_CTX *mem_ctx,
	
	/* Create a 'combined' list of all SIDs we might want in the SD */
	
	all_group_SIDs = malloc(sizeof(DOM_SID) * (info3->num_groups2 +info3->num_other_sids));
	all_group_SIDs = malloc(sizeof(DOM_SID) * (info3->num_groups2 + info3->num_other_sids + n_lgroupSIDs));
	
	if (!all_group_SIDs) {
		DEBUG(0, ("malloc() failed for DOM_SID list!\n"));
@@ -1216,12 +1216,6 @@ NTSTATUS make_server_info_info3(TALLOC_CTX *mem_ctx,
		return NT_STATUS_NO_MEMORY;
	}

#if 0 	/* JERRY -- no such thing as local groups in current code */
	/* Copy the 'local' sids */
	memcpy(all_group_SIDs, lgroupSIDs, sizeof(DOM_SID) * n_lgroupSIDs);
	SAFE_FREE(lgroupSIDs);
#endif

	/* and create (by appending rids) the 'domain' sids */
	
	for (i = 0; i < info3->num_groups2; i++) {
@@ -1255,12 +1249,21 @@ NTSTATUS make_server_info_info3(TALLOC_CTX *mem_ctx,
			 &info3->other_sids[i].sid);
	}


	/* add local alias sids */ 

	for (i = 0; i < n_lgroupSIDs; i++) {
		sid_copy(&all_group_SIDs[info3->num_groups2 +
					 info3->num_other_sids + i],
			 &lgroupSIDs[i]);
	}
	
	/* Where are the 'global' sids... */

	/* can the user be guest? if yes, where is it stored? */
	
	nt_status = create_nt_user_token(&user_sid, &group_sid,
		info3->num_groups2 + info3->num_other_sids,
		info3->num_groups2 + info3->num_other_sids + n_lgroupSIDs,
		all_group_SIDs, False, &token);
		
	if ( !NT_STATUS_IS_OK(nt_status) ) {