summaryrefslogtreecommitdiff
path: root/source3/smbd/signing.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/smbd/signing.c')
-rw-r--r--source3/smbd/signing.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/source3/smbd/signing.c b/source3/smbd/signing.c
index 1661b1bebf..2b622244c9 100644
--- a/source3/smbd/signing.c
+++ b/source3/smbd/signing.c
@@ -66,7 +66,7 @@ bool srv_check_sign_mac(struct smbd_server_connection *conn,
*seqnum = smb_signing_next_seqnum(conn->smb1.signing_state, false);
return smb_signing_check_pdu(conn->smb1.signing_state,
- (const uint8_t *)inbuf,
+ inhdr, len,
*seqnum);
}
@@ -77,12 +77,18 @@ bool srv_check_sign_mac(struct smbd_server_connection *conn,
void srv_calculate_sign_mac(struct smbd_server_connection *conn,
char *outbuf, uint32_t seqnum)
{
+ uint8_t *outhdr;
+ size_t len;
+
/* Check if it's a non-session message. */
if(CVAL(outbuf,0)) {
return;
}
- smb_signing_sign_pdu(conn->smb1.signing_state, (uint8_t *)outbuf, seqnum);
+ len = smb_len(outbuf);
+ outhdr = (uint8_t *)outbuf + NBT_HDR_SIZE;
+
+ smb_signing_sign_pdu(conn->smb1.signing_state, outhdr, len, seqnum);
}