r2664: fixed the final server leak for normal operation. We now get a clean report...
authorAndrew Tridgell <tridge@samba.org>
Sun, 26 Sep 2004 12:51:49 +0000 (12:51 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:59:19 +0000 (12:59 -0500)
(This used to be commit 1ff41bbcae8dc7514a85d69679e44dc7c5b0342f)

source4/libcli/raw/smb_signing.c
source4/smb_server/signing.c

index bd29abe3e6a991b3175d19ee530c991d9be7e08c..9ba385e06279254f6d91e8fd32f486f7c84515e6 100644 (file)
@@ -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);
 }
index 555a71c0a94bb3ec279e7becf330c31d12a2b5ec..5d18d44f4b2550a32abae036813d029fa5a4c120 100644 (file)
@@ -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,