Changeset 745 for trunk/server/source3/libsmb/smb_seal.c
- Timestamp:
- Nov 27, 2012, 4:43:17 PM (13 years ago)
- Location:
- trunk/server
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server
- Property svn:mergeinfo changed
/vendor/current merged: 581,587,591,594,597,600,615,618,740
- Property svn:mergeinfo changed
-
trunk/server/source3/libsmb/smb_seal.c
r414 r745 19 19 20 20 #include "includes.h" 21 #include "../libcli/auth/ntlmssp.h" 22 #include "smb_crypt.h" 23 #include "libsmb/libsmb.h" 21 24 22 25 /****************************************************************************** … … 60 63 ******************************************************************************/ 61 64 62 NTSTATUS common_ntlm_decrypt_buffer( NTLMSSP_STATE*ntlmssp_state, char *buf)65 NTSTATUS common_ntlm_decrypt_buffer(struct ntlmssp_state *ntlmssp_state, char *buf) 63 66 { 64 67 NTSTATUS status; … … 108 111 ******************************************************************************/ 109 112 110 NTSTATUS common_ntlm_encrypt_buffer( NTLMSSP_STATE*ntlmssp_state,113 NTSTATUS common_ntlm_encrypt_buffer(struct ntlmssp_state *ntlmssp_state, 111 114 uint16 enc_ctx_num, 112 115 char *buf, … … 117 120 size_t data_len = smb_len(buf) - 4; /* Ignore the 0xFF SMB bytes. */ 118 121 DATA_BLOB sig; 119 122 TALLOC_CTX *frame; 120 123 *ppbuf_out = NULL; 121 124 … … 124 127 } 125 128 129 frame = talloc_stackframe(); 126 130 /* 127 131 * We know smb_len can't return a value > 128k, so no int overflow … … 140 144 141 145 status = ntlmssp_seal_packet(ntlmssp_state, 146 frame, 142 147 (unsigned char *)buf_out + 8 + NTLMSSP_SIG_SIZE, /* 4 byte len + 0xFF 'S' <enc> <ctx> */ 143 148 data_len, … … 147 152 148 153 if (!NT_STATUS_IS_OK(status)) { 149 data_blob_free(&sig);154 talloc_free(frame); 150 155 SAFE_FREE(buf_out); 151 156 return status; … … 154 159 /* First 16 data bytes are signature for SSPI compatibility. */ 155 160 memcpy(buf_out + 8, sig.data, NTLMSSP_SIG_SIZE); 156 data_blob_free(&sig);161 talloc_free(frame); 157 162 *ppbuf_out = buf_out; 158 163 return NT_STATUS_OK; … … 369 374 if (es->smb_enc_type == SMB_TRANS_ENC_NTLM) { 370 375 if (es->s.ntlmssp_state) { 371 ntlmssp_end(&es->s.ntlmssp_state);376 TALLOC_FREE(es->s.ntlmssp_state); 372 377 } 373 378 }
Note:
See TracChangeset
for help on using the changeset viewer.