diff options
author | Volker Lendecke <vl@samba.org> | 2009-03-24 15:29:35 -0700 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2009-03-27 13:06:56 +0100 |
commit | b559de0f9489ff014f2cdef26e09f0915713efba (patch) | |
tree | b588b8b35fe4a03c08c25ff35f1794cb1a83914d | |
parent | d0931439975696b1d4a1ca024c6aa549da29b222 (diff) | |
download | samba-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.c | 3 |
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; } |