summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2009-03-24 15:29:35 -0700
committerKarolin Seeger <kseeger@samba.org>2009-03-27 13:06:56 +0100
commitb559de0f9489ff014f2cdef26e09f0915713efba (patch)
treeb588b8b35fe4a03c08c25ff35f1794cb1a83914d
parentd0931439975696b1d4a1ca024c6aa549da29b222 (diff)
downloadsamba-b559de0f9489ff014f2cdef26e09f0915713efba.tar.gz
samba-b559de0f9489ff014f2cdef26e09f0915713efba.tar.xz
samba-b559de0f9489ff014f2cdef26e09f0915713efba.zip
Fix two memleaks in the encryption code
ntlmssp_seal_packet creates its own signature data blob, which we then have to free. Jeremy, please check and merge appropriately (Yes, I'm asking you to do the janitor work, I want you to *look* at this :-)) Volker (cherry picked from commit 525af716cd52500a4e3dccf9eeb9ea85f86be7ca)
-rw-r--r--source/libsmb/smb_seal.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/source/libsmb/smb_seal.c b/source/libsmb/smb_seal.c
index 795c8bc14ca..2f7305c5b65 100644
--- a/source/libsmb/smb_seal.c
+++ b/source/libsmb/smb_seal.c
@@ -136,7 +136,7 @@ NTSTATUS common_ntlm_encrypt_buffer(NTLMSSP_STATE *ntlmssp_state,
smb_set_enclen(buf_out, smb_len(buf) + NTLMSSP_SIG_SIZE, enc_ctx_num);
- sig = data_blob(NULL, NTLMSSP_SIG_SIZE);
+ ZERO_STRUCT(sig);
status = ntlmssp_seal_packet(ntlmssp_state,
(unsigned char *)buf_out + 8 + NTLMSSP_SIG_SIZE, /* 4 byte len + 0xFF 'S' <enc> <ctx> */
@@ -153,6 +153,7 @@ NTSTATUS common_ntlm_encrypt_buffer(NTLMSSP_STATE *ntlmssp_state,
/* First 16 data bytes are signature for SSPI compatibility. */
memcpy(buf_out + 8, sig.data, NTLMSSP_SIG_SIZE);
+ data_blob_free(&sig);
*ppbuf_out = buf_out;
return NT_STATUS_OK;
}