The Samba-Bugzilla – Attachment 849 Details for
Bug 1136
Microsoft Exchange Administrator does not work on remote computer
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
put session-key in reply
samba3-netrsamlogon_v2.diff (text/plain), 4.45 KB, created by
Guenther Deschner
on 2004-12-20 04:48:44 UTC
(
hide
)
Description:
put session-key in reply
Filename:
MIME Type:
Creator:
Guenther Deschner
Created:
2004-12-20 04:48:44 UTC
Size:
4.45 KB
patch
obsolete
>Index: include/rpc_netlogon.h >=================================================================== >--- include/rpc_netlogon.h (revision 3915) >+++ include/rpc_netlogon.h (working copy) >@@ -168,7 +168,9 @@ > UNIHDR hdr_logon_dom; /* logon domain unicode string header */ > > uint32 buffer_dom_id; /* undocumented logon domain id pointer */ >- uint8 padding[40]; /* unused padding bytes. expansion room */ >+ uint8 lm_sess_key[8]; /* lm session key */ >+ uint32 acct_flags; /* account flags */ >+ uint32 unknown[7]; /* unknown */ > > uint32 num_other_sids; /* number of foreign/trusted domain sids */ > uint32 buffer_other_sids; >Index: rpc_client/cli_netlogon.c >=================================================================== >--- rpc_client/cli_netlogon.c (revision 3915) >+++ rpc_client/cli_netlogon.c (working copy) >@@ -654,6 +654,7 @@ > char *workstation_name_slash; > uint8 netlogon_sess_key[16]; > static uint8 zeros[16]; >+ int i; > > ZERO_STRUCT(q); > ZERO_STRUCT(r); >@@ -716,12 +717,17 @@ > memset(info3->user_sess_key, '\0', 16); > } > >- if (memcmp(zeros, info3->padding, 16) != 0) { >- SamOEMhash(info3->padding, netlogon_sess_key, 16); >+ if (memcmp(zeros, info3->lm_sess_key, 8) != 0) { >+ SamOEMhash(info3->lm_sess_key, netlogon_sess_key, 8); > } else { >- memset(info3->padding, '\0', 16); >+ memset(info3->lm_sess_key, '\0', 8); > } > >+ memset(&info3->acct_flags, '\0', 4); >+ for (i=0; i < 7; i++) { >+ memset(&info3->unknown[i], '\0', 4); >+ } >+ > /* Return results */ > > result = r.status; >Index: auth/auth_util.c >=================================================================== >--- auth/auth_util.c (revision 3915) >+++ auth/auth_util.c (working copy) >@@ -1324,11 +1324,12 @@ > (*server_info)->user_session_key = data_blob(info3->user_sess_key, sizeof(info3->user_sess_key)); > } > >- if (memcmp(info3->padding, zeros, sizeof(zeros)) == 0) { >+ if (memcmp(info3->lm_sess_key, zeros, 8) == 0) { > (*server_info)->lm_session_key = data_blob(NULL, 0); > } else { >- (*server_info)->lm_session_key = data_blob(info3->padding, 16); >- } >+ (*server_info)->lm_session_key = data_blob(info3->lm_sess_key, sizeof(info3->lm_sess_key)); >+ } >+ > return NT_STATUS_OK; > } > >Index: nsswitch/winbindd_pam.c >=================================================================== >--- nsswitch/winbindd_pam.c (revision 3915) >+++ nsswitch/winbindd_pam.c (working copy) >@@ -612,7 +612,7 @@ > memcpy(state->response.data.auth.user_session_key, info3.user_sess_key, sizeof(state->response.data.auth.user_session_key) /* 16 */); > } > if (state->request.flags & WBFLAG_PAM_LMKEY) { >- memcpy(state->response.data.auth.first_8_lm_hash, info3.padding, sizeof(state->response.data.auth.first_8_lm_hash) /* 8 */); >+ memcpy(state->response.data.auth.first_8_lm_hash, info3.lm_sess_key, sizeof(state->response.data.auth.first_8_lm_hash) /* 8 */); > } > } > >Index: rpc_parse/parse_net.c >=================================================================== >--- rpc_parse/parse_net.c (revision 3915) >+++ rpc_parse/parse_net.c (working copy) >@@ -1454,13 +1454,17 @@ > > usr->buffer_dom_id = dom_sid ? 1 : 0; /* yes, we're bothering to put a domain SID in */ > >- memset((char *)usr->padding, '\0', sizeof(usr->padding)); >+ memset((char *)usr->lm_sess_key, '\0', sizeof(usr->lm_sess_key)); >+ memset(&usr->acct_flags, '\0', sizeof(usr->acct_flags)); > >-#if 0 /* JRATEST - exchange auth test. */ >- if (lm_session_key != NULL) >- memcpy(usr->padding, lm_session_key, sizeof(usr->user_sess_key)); >-#endif >+ for (i=0; i<7; i++) { >+ memset(&usr->unknown[i], '\0', sizeof(usr->unknown)); >+ } > >+ if (lm_session_key != NULL) { >+ memcpy(usr->lm_sess_key, lm_session_key, sizeof(usr->lm_sess_key)); >+ } >+ > num_other_sids = init_dom_sid2s(ctx, other_sids, &usr->other_sids); > > usr->num_other_sids = num_other_sids; >@@ -1580,9 +1584,19 @@ > > if(!prs_uint32("buffer_dom_id ", ps, depth, &usr->buffer_dom_id)) /* undocumented logon domain id pointer */ > return False; >- if(!prs_uint8s (False, "padding ", ps, depth, usr->padding, 40)) /* unused padding bytes? */ >+ >+ if(!prs_uint8s(False, "lm_sess_key", ps, depth, usr->lm_sess_key, 8)) /* lm session key */ > return False; > >+ if(!prs_uint32("acct_flags ", ps, depth, &usr->acct_flags)) /* Account flags */ >+ return False; >+ >+ for (i = 0; i < 7; i++) >+ { >+ if (!prs_uint32("unkown", ps, depth, &usr->unknown[i])) /* unknown */ >+ return False; >+ } >+ > if (validation_level == 3) { > if(!prs_uint32("num_other_sids", ps, depth, &usr->num_other_sids)) /* 0 - num_sids */ > return False;
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 1136
: 849