summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/libsmb/smb_seal.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/source3/libsmb/smb_seal.c b/source3/libsmb/smb_seal.c
index 7a27f88a2e..9ea3a10350 100644
--- a/source3/libsmb/smb_seal.c
+++ b/source3/libsmb/smb_seal.c
@@ -238,6 +238,14 @@ void common_free_enc_buffer(struct smb_trans_enc_state *es, char *buf)
return;
}
+ /* We know this is an smb buffer, and we
+ * didn't malloc, only copy, for a keepalive,
+ * so ignore session keepalives. */
+
+ if(CVAL(buf,0) == SMBkeepalive) {
+ return;
+ }
+
if (es->smb_enc_type == SMB_TRANS_ENC_NTLM) {
SAFE_FREE(buf);
return;
@@ -267,7 +275,7 @@ BOOL cli_encryption_on(struct cli_state *cli)
void cli_free_encryption_context(struct cli_state *cli)
{
- return common_free_encryption_state(&cli->trans_enc_state);
+ common_free_encryption_state(&cli->trans_enc_state);
}
/******************************************************************************
@@ -276,7 +284,7 @@ void cli_free_encryption_context(struct cli_state *cli)
void cli_free_enc_buffer(struct cli_state *cli, char *buf)
{
- return common_free_enc_buffer(cli->trans_enc_state, buf);
+ common_free_enc_buffer(cli->trans_enc_state, buf);
}
/******************************************************************************