diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-06-15 00:27:51 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:18:12 -0500 |
commit | c0947b0d7f809f5139fbfcdbd618ed7b0a77d2be (patch) | |
tree | 7c0d7391b8f27d55e40b22f2c16315356e10a167 /source4/ldap_server/ldap_server.c | |
parent | 74a3621089d4d1e9ba4c1a02e44247d1cff29200 (diff) | |
download | samba-c0947b0d7f809f5139fbfcdbd618ed7b0a77d2be.tar.gz samba-c0947b0d7f809f5139fbfcdbd618ed7b0a77d2be.tar.bz2 samba-c0947b0d7f809f5139fbfcdbd618ed7b0a77d2be.zip |
r7593: simplified the memory management in the ldap code. Having a mem_ctx
element in a structure is not necessary any more.
(This used to be commit 912d0427f52eac811b27bf7e385b0642f7dc7f53)
Diffstat (limited to 'source4/ldap_server/ldap_server.c')
-rw-r--r-- | source4/ldap_server/ldap_server.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/source4/ldap_server/ldap_server.c b/source4/ldap_server/ldap_server.c index 9f62d72e2c..9c5f5fccc8 100644 --- a/source4/ldap_server/ldap_server.c +++ b/source4/ldap_server/ldap_server.c @@ -305,7 +305,7 @@ NTSTATUS ldapsrv_do_responses(struct ldapsrv_connection *conn) for (call=conn->calls; call; call=next_call) { for (reply=call->replies; reply; reply=next_reply) { - if (!ldap_encode_to_buf(&reply->msg, &conn->out_buffer)) { + if (!ldap_encode_to_buf(reply->msg, &conn->out_buffer)) { return NT_STATUS_FOOBAR; } next_reply = reply->next; @@ -375,18 +375,22 @@ static void ldapsrv_recv(struct stream_connection *conn, uint16_t flags) return; } - call = talloc(ldap_conn, struct ldapsrv_call); + call = talloc_zero(ldap_conn, struct ldapsrv_call); if (!call) { ldapsrv_terminate_connection(ldap_conn, "no memory"); return; } - ZERO_STRUCTP(call); + call->request = talloc_zero(call, struct ldap_message); + if (call->request == NULL) { + ldapsrv_terminate_connection(ldap_conn, "no memory"); + return; + } + call->state = LDAPSRV_CALL_STATE_NEW; call->conn = ldap_conn; - call->request.mem_ctx = call; - if (!ldap_decode(&data, &call->request)) { + if (!ldap_decode(&data, call->request)) { dump_data(0,buf, msg_length); asn1_free(&data); ldapsrv_terminate_connection(ldap_conn, "ldap_decode() failed"); |