summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/libcli/raw/smb_signing.c10
-rw-r--r--source4/smb_server/signing.c3
2 files changed, 8 insertions, 5 deletions
diff --git a/source4/libcli/raw/smb_signing.c b/source4/libcli/raw/smb_signing.c
index bd29abe3e6..9ba385e062 100644
--- a/source4/libcli/raw/smb_signing.c
+++ b/source4/libcli/raw/smb_signing.c
@@ -321,7 +321,8 @@ BOOL smbcli_request_check_sign_mac(struct smbcli_request *req)
/***********************************************************
SMB signing - Simple implementation - setup the MAC key.
************************************************************/
-BOOL smbcli_simple_set_signing(struct smb_signing_context *sign_info,
+BOOL smbcli_simple_set_signing(TALLOC_CTX *mem_ctx,
+ struct smb_signing_context *sign_info,
const DATA_BLOB *user_session_key,
const DATA_BLOB *response)
{
@@ -332,9 +333,9 @@ BOOL smbcli_simple_set_signing(struct smb_signing_context *sign_info,
DEBUG(5, ("SMB signing enabled!\n"));
if (response && response->length) {
- sign_info->mac_key = data_blob(NULL, response->length + user_session_key->length);
+ sign_info->mac_key = data_blob_talloc(mem_ctx, NULL, response->length + user_session_key->length);
} else {
- sign_info->mac_key = data_blob(NULL, user_session_key->length);
+ sign_info->mac_key = data_blob_talloc(mem_ctx, NULL, user_session_key->length);
}
memcpy(&sign_info->mac_key.data[0], user_session_key->data, user_session_key->length);
@@ -365,7 +366,8 @@ BOOL smbcli_transport_simple_set_signing(struct smbcli_transport *transport,
return False;
}
- return smbcli_simple_set_signing(&transport->negotiate.sign_info,
+ return smbcli_simple_set_signing(transport,
+ &transport->negotiate.sign_info,
&user_session_key,
&response);
}
diff --git a/source4/smb_server/signing.c b/source4/smb_server/signing.c
index 555a71c0a9..5d18d44f4b 100644
--- a/source4/smb_server/signing.c
+++ b/source4/smb_server/signing.c
@@ -67,7 +67,8 @@ BOOL srv_setup_signing(struct smbsrv_connection *smb_conn,
if (!set_smb_signing_common(&smb_conn->signing)) {
return False;
}
- return smbcli_simple_set_signing(&smb_conn->signing, session_key, response);
+ return smbcli_simple_set_signing(smb_conn,
+ &smb_conn->signing, session_key, response);
}
void srv_signing_restart(struct smbsrv_connection *smb_conn,