[SCM] Samba Shared Repository - branch master updated

Kamen Mazdrashki kamenim at samba.org
Fri May 30 07:30:03 MDT 2014


The branch, master has been updated
       via  90f9db9 Fix several talloc stack frames not freed
      from  bd22312 s3:messaging: change unix_dgram_recv_handler() to use recvmsg, not recv

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


- Log -----------------------------------------------------------------
commit 90f9db9c062f2953c19f62dab3fab0b61d8c8e6c
Author: Samuel Cabrero <scabrero at zentyal.com>
Date:   Wed May 28 17:57:31 2014 +0200

    Fix several talloc stack frames not freed
    
    Signed-off-by: Samuel Cabrero <scabrero at zentyal.com>
    Reviewed-by: Kamen Mazdrashki <kamenim at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    
    Autobuild-User(master): Kamen Mazdrashki <kamenim at samba.org>
    Autobuild-Date(master): Fri May 30 15:29:29 CEST 2014 on sn-devel-104

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

Summary of changes:
 source3/passdb/pdb_samba_dsdb.c       |    8 ++++++++
 source4/torture/libnetapi/libnetapi.c |    1 +
 2 files changed, 9 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/passdb/pdb_samba_dsdb.c b/source3/passdb/pdb_samba_dsdb.c
index 01e747a..febf21c 100644
--- a/source3/passdb/pdb_samba_dsdb.c
+++ b/source3/passdb/pdb_samba_dsdb.c
@@ -339,6 +339,7 @@ static int pdb_samba_dsdb_replace_by_sam(struct pdb_samba_dsdb_state *state,
 
 	msg = ldb_msg_new(frame);
 	if (!msg) {
+		talloc_free(frame);
 		return false;
 	}
 
@@ -375,6 +376,7 @@ static int pdb_samba_dsdb_replace_by_sam(struct pdb_samba_dsdb_state *state,
 					   pw, strlen(pw),
 					   (void *)&pw_utf16.data,
 					   &pw_utf16.length)) {
+			talloc_free(frame);
 			return LDB_ERR_OPERATIONS_ERROR;
 		}
 		ret |= ldb_msg_add_value(msg, "clearTextPassword", &pw_utf16, NULL);
@@ -1011,6 +1013,7 @@ static NTSTATUS pdb_samba_dsdb_getgrgid(struct pdb_methods *m, GROUP_MAP *map,
 
 	status = idmap_xids_to_sids(state->idmap_ctx, tmp_ctx, id_maps);
 	if (!NT_STATUS_IS_OK(status)) {
+		talloc_free(tmp_ctx);
 		return status;
 	}
 	status = pdb_samba_dsdb_getgrsid(m, map, *id_map.sid);
@@ -1521,6 +1524,7 @@ static NTSTATUS pdb_samba_dsdb_delete_alias(struct pdb_methods *m,
 
 	if (ldb_transaction_start(state->ldb) != LDB_SUCCESS) {
 		DEBUG(0, ("Failed to start transaction in dsdb_add_domain_alias(): %s\n", ldb_errstring(state->ldb)));
+		talloc_free(tmp_ctx);
 		return NT_STATUS_INTERNAL_ERROR;
 	}
 
@@ -1542,15 +1546,18 @@ static NTSTATUS pdb_samba_dsdb_delete_alias(struct pdb_methods *m,
 		DEBUG(10, ("ldb_delete failed %s\n",
 			   ldb_errstring(state->ldb)));
 		ldb_transaction_cancel(state->ldb);
+		talloc_free(tmp_ctx);
 		return NT_STATUS_LDAP(rc);
 	}
 
 	if (ldb_transaction_commit(state->ldb) != LDB_SUCCESS) {
 		DEBUG(0, ("Failed to commit transaction in pdb_samba_dsdb_delete_alias(): %s\n",
 			  ldb_errstring(state->ldb)));
+		talloc_free(tmp_ctx);
 		return NT_STATUS_INTERNAL_ERROR;
 	}
 
+	talloc_free(tmp_ctx);
 	return NT_STATUS_OK;
 }
 
@@ -2061,6 +2068,7 @@ static bool pdb_samba_dsdb_gid_to_sid(struct pdb_methods *m, gid_t gid,
 
 	status = idmap_xids_to_sids(state->idmap_ctx, tmp_ctx, id_maps);
 	if (!NT_STATUS_IS_OK(status)) {
+		talloc_free(tmp_ctx);
 		return false;
 	}
 	*sid = *id_map.sid;
diff --git a/source4/torture/libnetapi/libnetapi.c b/source4/torture/libnetapi/libnetapi.c
index c516976..431b531 100644
--- a/source4/torture/libnetapi/libnetapi.c
+++ b/source4/torture/libnetapi/libnetapi.c
@@ -35,6 +35,7 @@ bool torture_libnetapi_init_context(struct torture_context *tctx,
 
 	if (!lp_load(lpcfg_configfile(tctx->lp_ctx), true, false, false, true)) {
 		fprintf(stderr, "error loading %s\n", lpcfg_configfile(tctx->lp_ctx));
+		talloc_free(frame);
 		return W_ERROR_V(WERR_GENERAL_FAILURE);
 	}
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list