mirror of
https://github.com/samba-team/samba.git
synced 2025-03-19 18:50:24 +03:00
libcli/smb: construct the signing_key before forming the message
metze
This commit is contained in:
parent
5adf63fe30
commit
7e0982421b
@ -2558,37 +2558,6 @@ NTSTATUS smb2cli_req_compound_submit(struct tevent_req **reqs,
|
||||
SBVAL(state->smb2.hdr, SMB2_HDR_MESSAGE_ID, mid);
|
||||
|
||||
skip_credits:
|
||||
hdr_iov = num_iov;
|
||||
iov[num_iov].iov_base = state->smb2.hdr;
|
||||
iov[num_iov].iov_len = sizeof(state->smb2.hdr);
|
||||
num_iov += 1;
|
||||
|
||||
iov[num_iov].iov_base = discard_const(state->smb2.fixed);
|
||||
iov[num_iov].iov_len = state->smb2.fixed_len;
|
||||
num_iov += 1;
|
||||
|
||||
if (state->smb2.dyn != NULL) {
|
||||
iov[num_iov].iov_base = discard_const(state->smb2.dyn);
|
||||
iov[num_iov].iov_len = state->smb2.dyn_len;
|
||||
num_iov += 1;
|
||||
}
|
||||
|
||||
reqlen = sizeof(state->smb2.hdr);
|
||||
reqlen += state->smb2.fixed_len;
|
||||
reqlen += state->smb2.dyn_len;
|
||||
|
||||
if (i < num_reqs-1) {
|
||||
if ((reqlen % 8) > 0) {
|
||||
uint8_t pad = 8 - (reqlen % 8);
|
||||
iov[num_iov].iov_base = state->smb2.pad;
|
||||
iov[num_iov].iov_len = pad;
|
||||
num_iov += 1;
|
||||
reqlen += pad;
|
||||
}
|
||||
SIVAL(state->smb2.hdr, SMB2_HDR_NEXT_COMMAND, reqlen);
|
||||
}
|
||||
nbt_len += reqlen;
|
||||
|
||||
if (state->session) {
|
||||
bool should_sign = state->session->smb2.should_sign;
|
||||
|
||||
@ -2622,6 +2591,37 @@ skip_credits:
|
||||
}
|
||||
}
|
||||
|
||||
hdr_iov = num_iov;
|
||||
iov[num_iov].iov_base = state->smb2.hdr;
|
||||
iov[num_iov].iov_len = sizeof(state->smb2.hdr);
|
||||
num_iov += 1;
|
||||
|
||||
iov[num_iov].iov_base = discard_const(state->smb2.fixed);
|
||||
iov[num_iov].iov_len = state->smb2.fixed_len;
|
||||
num_iov += 1;
|
||||
|
||||
if (state->smb2.dyn != NULL) {
|
||||
iov[num_iov].iov_base = discard_const(state->smb2.dyn);
|
||||
iov[num_iov].iov_len = state->smb2.dyn_len;
|
||||
num_iov += 1;
|
||||
}
|
||||
|
||||
reqlen = sizeof(state->smb2.hdr);
|
||||
reqlen += state->smb2.fixed_len;
|
||||
reqlen += state->smb2.dyn_len;
|
||||
|
||||
if (i < num_reqs-1) {
|
||||
if ((reqlen % 8) > 0) {
|
||||
uint8_t pad = 8 - (reqlen % 8);
|
||||
iov[num_iov].iov_base = state->smb2.pad;
|
||||
iov[num_iov].iov_len = pad;
|
||||
num_iov += 1;
|
||||
reqlen += pad;
|
||||
}
|
||||
SIVAL(state->smb2.hdr, SMB2_HDR_NEXT_COMMAND, reqlen);
|
||||
}
|
||||
nbt_len += reqlen;
|
||||
|
||||
if (signing_key) {
|
||||
NTSTATUS status;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user