The Samba-Bugzilla – Attachment 1681 Details for
Bug 3397
MS SMS cannot verify account in Samba domain
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for samba-3.0.21a
samba-sms.diff (text/plain), 4.96 KB, created by
Alex Deiter
on 2006-01-14 02:01:06 UTC
(
hide
)
Description:
Patch for samba-3.0.21a
Filename:
MIME Type:
Creator:
Alex Deiter
Created:
2006-01-14 02:01:06 UTC
Size:
4.96 KB
patch
obsolete
>diff -ur samba-3.0.21a/source/include/rpc_samr.h samba-3.0.21a-sms/source/include/rpc_samr.h >--- samba-3.0.21a/source/include/rpc_samr.h Fri Dec 2 22:21:49 2005 >+++ samba-3.0.21a-sms/source/include/rpc_samr.h Sat Jan 14 11:05:52 2006 >@@ -408,6 +408,14 @@ > > } SAM_USER_INFO_16; > >+ >+/* SAM_USER_INFO_9 */ >+typedef struct sam_user_info_9 >+{ >+ uint32 rid_group; /* Primary Group RID */ >+} SAM_USER_INFO_9; >+ >+ > /* SAM_USER_INFO_7 */ > typedef struct sam_user_info_7 > { >@@ -1255,6 +1263,7 @@ > union > { > SAM_USER_INFO_7 *id7; >+ SAM_USER_INFO_9 *id9; > SAM_USER_INFO_16 *id16; > SAM_USER_INFO_17 *id17; > SAM_USER_INFO_18 *id18; >diff -ur samba-3.0.21a/source/rpc_parse/parse_samr.c samba-3.0.21a-sms/source/rpc_parse/parse_samr.c >--- samba-3.0.21a/source/rpc_parse/parse_samr.c Fri Dec 2 22:21:49 2005 >+++ samba-3.0.21a-sms/source/rpc_parse/parse_samr.c Sat Jan 14 11:25:48 2006 >@@ -5183,6 +5183,39 @@ > } > > /******************************************************************* >+inits a SAM_USER_INFO_9 structure. >+********************************************************************/ >+ >+void init_sam_user_info9(SAM_USER_INFO_9 * usr, uint32 rid_group) >+{ >+ DEBUG(5, ("init_sam_user_info9\n")); >+ >+ usr->rid_group = rid_group; >+} >+ >+/******************************************************************* >+reads or writes a structure. >+********************************************************************/ >+ >+static BOOL sam_io_user_info9(const char *desc, SAM_USER_INFO_9 * usr, >+ prs_struct *ps, int depth) >+{ >+ if (usr == NULL) >+ return False; >+ >+ prs_debug(ps, depth, desc, "samr_io_r_user_info9"); >+ depth++; >+ >+ if(!prs_align(ps)) >+ return False; >+ >+ if(!prs_uint32("rid_group", ps, depth, &usr->rid_group)) >+ return False; >+ >+ return True; >+} >+ >+/******************************************************************* > inits a SAM_USER_INFO_16 structure. > ********************************************************************/ > >@@ -6353,6 +6386,15 @@ > return False; > } > ret = sam_io_user_info7("", ctr->info.id7, ps, depth); >+ break; >+ case 9: >+ if (UNMARSHALLING(ps)) >+ ctr->info.id9 = PRS_ALLOC_MEM(ps,SAM_USER_INFO_9,1); >+ if (ctr->info.id9 == NULL) { >+ DEBUG(2,("samr_io_userinfo_ctr: info pointer not initialised\n")); >+ return False; >+ } >+ ret = sam_io_user_info9("", ctr->info.id9, ps, depth); > break; > case 16: > if (UNMARSHALLING(ps)) >diff -ur samba-3.0.21a/source/rpc_server/srv_samr_nt.c samba-3.0.21a-sms/source/rpc_server/srv_samr_nt.c >--- samba-3.0.21a/source/rpc_server/srv_samr_nt.c Tue Dec 20 18:28:39 2005 >+++ samba-3.0.21a-sms/source/rpc_server/srv_samr_nt.c Sat Jan 14 11:40:36 2006 >@@ -1686,6 +1686,41 @@ > > return NT_STATUS_OK; > } >+ >+/************************************************************************* >+ get_user_info_9. Only gives out primary group SID. >+ *************************************************************************/ >+static NTSTATUS get_user_info_9(TALLOC_CTX *mem_ctx, SAM_USER_INFO_9 * id9, DOM_SID *user_sid) >+{ >+ SAM_ACCOUNT *smbpass=NULL; >+ BOOL ret; >+ NTSTATUS nt_status; >+ >+ nt_status = pdb_init_sam_talloc(mem_ctx, &smbpass); >+ >+ if (!NT_STATUS_IS_OK(nt_status)) { >+ return nt_status; >+ } >+ >+ become_root(); >+ ret = pdb_getsampwsid(smbpass, user_sid); >+ unbecome_root(); >+ >+ if (ret==False) { >+ DEBUG(4,("User %s not found\n", sid_string_static(user_sid))); >+ return NT_STATUS_NO_SUCH_USER; >+ } >+ >+ DEBUG(3,("User:[%s]\n", pdb_get_username(smbpass) )); >+ >+ ZERO_STRUCTP(id9); >+ init_sam_user_info9(id9, pdb_get_group_rid(smbpass) ); >+ >+ pdb_free_sam(&smbpass); >+ >+ return NT_STATUS_OK; >+} >+ > /************************************************************************* > get_user_info_16. Safe. Only gives out acb bits. > *************************************************************************/ >@@ -1878,6 +1913,8 @@ > /* ok! user info levels (lots: see MSDEV help), off we go... */ > ctr->switch_value = q_u->switch_value; > >+ DEBUG(5,("_samr_query_userinfo: user info level: %d\n", q_u->switch_value)); >+ > switch (q_u->switch_value) { > case 7: > ctr->info.id7 = TALLOC_ZERO_P(p->mem_ctx, SAM_USER_INFO_7); >@@ -1887,6 +1924,14 @@ > if (!NT_STATUS_IS_OK(r_u->status = get_user_info_7(p->mem_ctx, ctr->info.id7, &info->sid))) > return r_u->status; > break; >+ case 9: >+ ctr->info.id9 = TALLOC_ZERO_P(p->mem_ctx, SAM_USER_INFO_9); >+ if (ctr->info.id9 == NULL) >+ return NT_STATUS_NO_MEMORY; >+ >+ if (!NT_STATUS_IS_OK(r_u->status = get_user_info_9(p->mem_ctx, ctr->info.id9, &info->sid))) >+ return r_u->status; >+ break; > case 16: > ctr->info.id16 = TALLOC_ZERO_P(p->mem_ctx, SAM_USER_INFO_16); > if (ctr->info.id16 == NULL) >@@ -2603,8 +2648,12 @@ > > ZERO_STRUCT(sid); > >- if (!secrets_fetch_domain_sid(domain_name, &sid)) { >- r_u->status = NT_STATUS_NO_SUCH_DOMAIN; >+ if (strequal(domain_name, "BUILTIN")) { >+ sid_copy(&sid, &global_sid_Builtin); >+ } else { >+ if (!secrets_fetch_domain_sid(domain_name, &sid)) { >+ r_u->status = NT_STATUS_NO_SUCH_DOMAIN; >+ } > } > > DEBUG(2,("Returning domain sid for domain %s -> %s\n", domain_name, sid_string_static(&sid)));
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 3397
:
1669
|
1679
| 1681