diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-09-13 22:05:45 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:38:09 -0500 |
commit | a129ad36eb34bbeda80c75b2f8d771bdaca8451e (patch) | |
tree | 07a70c2d8d5a7f687a79334874b4a3d34701922b /source4/libcli/ldap | |
parent | 234481fd40f02a3cd2cccfea0909d248b82a83d8 (diff) | |
download | samba-a129ad36eb34bbeda80c75b2f8d771bdaca8451e.tar.gz samba-a129ad36eb34bbeda80c75b2f8d771bdaca8451e.tar.bz2 samba-a129ad36eb34bbeda80c75b2f8d771bdaca8451e.zip |
r10213: fixed a memory leak in the ldap client and server code spotted by Karl
Melcher. ldap_encode() now takes a memory context to use for the data
blob
(This used to be commit 09948a59336a7f02bf2b4605f2d4d886e65b85f2)
Diffstat (limited to 'source4/libcli/ldap')
-rw-r--r-- | source4/libcli/ldap/ldap.c | 4 | ||||
-rw-r--r-- | source4/libcli/ldap/ldap_client.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/source4/libcli/ldap/ldap.c b/source4/libcli/ldap/ldap.c index f7f6feea38..815d543038 100644 --- a/source4/libcli/ldap/ldap.c +++ b/source4/libcli/ldap/ldap.c @@ -189,7 +189,7 @@ static void ldap_encode_response(struct asn1_data *data, struct ldap_Result *res } } -BOOL ldap_encode(struct ldap_message *msg, DATA_BLOB *result) +BOOL ldap_encode(struct ldap_message *msg, DATA_BLOB *result, TALLOC_CTX *mem_ctx) { struct asn1_data data; int i, j; @@ -462,7 +462,7 @@ BOOL ldap_encode(struct ldap_message *msg, DATA_BLOB *result) return False; } - *result = data_blob(data.data, data.length); + *result = data_blob_talloc(mem_ctx, data.data, data.length); asn1_free(&data); return True; } diff --git a/source4/libcli/ldap/ldap_client.c b/source4/libcli/ldap/ldap_client.c index 97b75602aa..800e523eb4 100644 --- a/source4/libcli/ldap/ldap_client.c +++ b/source4/libcli/ldap/ldap_client.c @@ -497,7 +497,7 @@ struct ldap_request *ldap_request_send(struct ldap_connection *conn, msg->messageid = req->messageid; - if (!ldap_encode(msg, &req->data)) { + if (!ldap_encode(msg, &req->data, req)) { goto failed; } |