[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-270-gf6d0884

Volker Lendecke vlendec at samba.org
Fri Jan 30 20:30:21 GMT 2009


The branch, master has been updated
       via  f6d08849e11775eb2530f04ecb055269ea445539 (commit)
       via  aef749b53fb835226d4e879234b3ac3da1e33557 (commit)
      from  40b67c3426042ea46d2497e459807ef9551e62f1 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit f6d08849e11775eb2530f04ecb055269ea445539
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Jan 30 21:25:50 2009 +0100

    Fix memleaks

commit aef749b53fb835226d4e879234b3ac3da1e33557
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Jan 30 21:25:37 2009 +0100

    pass NULL to prs_give_memory, that is a pointer

-----------------------------------------------------------------------

Summary of changes:
 source3/rpc_client/cli_pipe.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c
index 83247df..a741dec 100644
--- a/source3/rpc_client/cli_pipe.c
+++ b/source3/rpc_client/cli_pipe.c
@@ -1252,7 +1252,7 @@ static struct async_req *rpc_api_pipe_send(TALLOC_CTX *mem_ctx,
 
 	prs_init_empty(&state->incoming_pdu, state, UNMARSHALL);
 	/* Make incoming_pdu dynamic with no memory. */
-	prs_give_memory(&state->incoming_pdu, 0, 0, true);
+	prs_give_memory(&state->incoming_pdu, NULL, 0, true);
 
 	talloc_set_destructor(state, rpc_api_pipe_state_destructor);
 
@@ -2604,6 +2604,7 @@ static void rpc_pipe_bind_step_one_done(struct async_req *subreq)
 	/* Unmarshall the RPC header */
 	if (!smb_io_rpc_hdr("hdr", &hdr, &reply_pdu, 0)) {
 		DEBUG(0, ("rpc_pipe_bind: failed to unmarshall RPC_HDR.\n"));
+		prs_mem_free(&reply_pdu);
 		async_req_error(req, NT_STATUS_BUFFER_TOO_SMALL);
 		return;
 	}
@@ -2611,12 +2612,14 @@ static void rpc_pipe_bind_step_one_done(struct async_req *subreq)
 	if (!smb_io_rpc_hdr_ba("", &hdr_ba, &reply_pdu, 0)) {
 		DEBUG(0, ("rpc_pipe_bind: Failed to unmarshall "
 			  "RPC_HDR_BA.\n"));
+		prs_mem_free(&reply_pdu);
 		async_req_error(req, NT_STATUS_BUFFER_TOO_SMALL);
 		return;
 	}
 
 	if (!check_bind_response(&hdr_ba, &state->cli->transfer_syntax)) {
 		DEBUG(2, ("rpc_pipe_bind: check_bind_response failed.\n"));
+		prs_mem_free(&reply_pdu);
 		async_req_error(req, NT_STATUS_BUFFER_TOO_SMALL);
 		return;
 	}
@@ -2633,6 +2636,7 @@ static void rpc_pipe_bind_step_one_done(struct async_req *subreq)
 	case PIPE_AUTH_TYPE_NONE:
 	case PIPE_AUTH_TYPE_SCHANNEL:
 		/* Bind complete. */
+		prs_mem_free(&reply_pdu);
 		async_req_done(req);
 		break;
 
@@ -2640,6 +2644,7 @@ static void rpc_pipe_bind_step_one_done(struct async_req *subreq)
 		/* Need to send AUTH3 packet - no reply. */
 		status = rpc_finish_auth3_bind_send(req, state, &hdr,
 						    &reply_pdu);
+		prs_mem_free(&reply_pdu);
 		if (!NT_STATUS_IS_OK(status)) {
 			async_req_error(req, status);
 		}
@@ -2649,6 +2654,7 @@ static void rpc_pipe_bind_step_one_done(struct async_req *subreq)
 		/* Need to send alter context request and reply. */
 		status = rpc_finish_spnego_ntlmssp_bind_send(req, state, &hdr,
 							     &reply_pdu);
+		prs_mem_free(&reply_pdu);
 		if (!NT_STATUS_IS_OK(status)) {
 			async_req_error(req, status);
 		}
@@ -2660,6 +2666,7 @@ static void rpc_pipe_bind_step_one_done(struct async_req *subreq)
 	default:
 		DEBUG(0,("cli_finish_bind_auth: unknown auth type %u\n",
 			 (unsigned int)state->cli->auth->auth_type));
+		prs_mem_free(&reply_pdu);
 		async_req_error(req, NT_STATUS_INTERNAL_ERROR);
 	}
 }


-- 
Samba Shared Repository


More information about the samba-cvs mailing list