From 9faa0745e9598a9096a7c69c30c273b47393e819 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 1 Jul 2009 13:59:52 +1000 Subject: fixed rpc smb code to not reply on talloc_free being a function pointer The upcoming talloc_free/talloc_reference changes change talloc_free to be a macro. These two bits of code relied on it being a function pointer --- source4/librpc/rpc/dcerpc_smb.c | 8 +++++++- source4/librpc/rpc/dcerpc_smb2.c | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'source4/librpc/rpc') diff --git a/source4/librpc/rpc/dcerpc_smb.c b/source4/librpc/rpc/dcerpc_smb.c index 013a8578e6..8b221747ac 100644 --- a/source4/librpc/rpc/dcerpc_smb.c +++ b/source4/librpc/rpc/dcerpc_smb.c @@ -360,6 +360,12 @@ static NTSTATUS smb_send_request(struct dcerpc_connection *c, DATA_BLOB *blob, return NT_STATUS_OK; } + +static void free_request(struct smbcli_request *req) +{ + talloc_free(req); +} + /* shutdown SMB pipe connection */ @@ -378,7 +384,7 @@ static NTSTATUS smb_shutdown_pipe(struct dcerpc_connection *c, NTSTATUS status) req = smb_raw_close_send(smb->tree, &io); if (req != NULL) { /* we don't care if this fails, so just free it if it succeeds */ - req->async.fn = (void (*)(struct smbcli_request *))talloc_free; + req->async.fn = free_request; } talloc_free(smb); diff --git a/source4/librpc/rpc/dcerpc_smb2.c b/source4/librpc/rpc/dcerpc_smb2.c index e4933652f4..fbd847680f 100644 --- a/source4/librpc/rpc/dcerpc_smb2.c +++ b/source4/librpc/rpc/dcerpc_smb2.c @@ -324,6 +324,11 @@ static NTSTATUS smb2_send_request(struct dcerpc_connection *c, DATA_BLOB *blob, return NT_STATUS_OK; } +static void free_request(struct smb2_request *req) +{ + talloc_free(req); +} + /* shutdown SMB pipe connection */ @@ -341,7 +346,7 @@ static NTSTATUS smb2_shutdown_pipe(struct dcerpc_connection *c, NTSTATUS status) req = smb2_close_send(smb->tree, &io); if (req != NULL) { /* we don't care if this fails, so just free it if it succeeds */ - req->async.fn = (void (*)(struct smb2_request *))talloc_free; + req->async.fn = free_request; } talloc_free(smb); -- cgit