Changeset 751 for trunk/server/source3/smbd/smb2_negprot.c
- Timestamp:
- Nov 29, 2012, 1:59:04 PM (13 years ago)
- File:
-
- 1 edited
-
trunk/server/source3/smbd/smb2_negprot.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/server/source3/smbd/smb2_negprot.c
r745 r751 62 62 NTSTATUS smbd_smb2_request_process_negprot(struct smbd_smb2_request *req) 63 63 { 64 64 65 const uint8_t *inbody; 65 66 const uint8_t *indyn = NULL; … … 70 71 uint16_t security_offset; 71 72 DATA_BLOB security_buffer; 72 size_t expected_body_size = 0x24;73 size_t body_size;74 73 size_t expected_dyn_size = 0; 75 74 size_t c; … … 78 77 uint16_t dialect = 0; 79 78 uint32_t capabilities; 79 80 81 82 80 83 81 /* TODO: drop the connection with INVALID_PARAMETER */ 82 83 if (req->in.vector[i+1].iov_len != (expected_body_size & 0xFFFFFFFE)) { 84 return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER); 84 status = smbd_smb2_request_verify_sizes(req, 0x24); 85 if (!NT_STATUS_IS_OK(status)) { 86 return smbd_smb2_request_error(req, status); 85 87 } 86 87 88 inbody = (const uint8_t *)req->in.vector[i+1].iov_base; 88 89 body_size = SVAL(inbody, 0x00);90 if (body_size != expected_body_size) {91 return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER);92 }93 89 94 90 dialect_count = SVAL(inbody, 0x02); … … 140 136 } 141 137 138 139 140 141 142 143 144 145 146 147 142 148 security_offset = SMB2_HDR_BODY + 0x40; 143 149 … … 165 171 SIVAL(outbody.data, 0x18, 166 172 capabilities); /* capabilities */ 167 SIVAL(outbody.data, 0x1C, lp_smb2_max_trans()); /* max transact size */168 SIVAL(outbody.data, 0x20, lp_smb2_max_read()); /* max read size */169 SIVAL(outbody.data, 0x24, lp_smb2_max_write()); /* max write size */173 SIVAL(outbody.data, 0x1C, ); /* max transact size */ 174 SIVAL(outbody.data, 0x20, ); /* max read size */ 175 SIVAL(outbody.data, 0x24, ); /* max write size */ 170 176 SBVAL(outbody.data, 0x28, 0); /* system time */ 171 177 SBVAL(outbody.data, 0x30, 0); /* server start time */ … … 179 185 180 186 req->sconn->using_smb2 = true; 187 188 189 181 190 182 191 return smbd_smb2_request_done(req, outbody, &outdyn);
Note:
See TracChangeset
for help on using the changeset viewer.
