[SCM] Samba Shared Repository - branch master updated

Andrew Tridgell tridge at samba.org
Fri Oct 1 12:23:02 MDT 2010


The branch, master has been updated
       via  afe78c2 autobuild: fixed the tuples in the retry_task
       via  2d66bb5 autobuild: cwd is needed on all command types
       via  f6bc4c0 s4-rpmd: fixed a use after realloc bug
       via  4beff4d s4-dsdb: fail the transaction instead of asserting on error
      from  9cdebd0 autobuild: Avoid unnecessary chdir() calls.

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


- Log -----------------------------------------------------------------
commit afe78c23ad4868b1c67a3aa855ad7f59d8475412
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Oct 1 11:17:04 2010 -0700

    autobuild: fixed the tuples in the retry_task
    
    Pair-Programmed-With: Jelmer Vernooij <jelmer at samba.org>
    
    Autobuild-User: Andrew Tridgell <tridge at samba.org>
    Autobuild-Date: Fri Oct  1 18:22:22 UTC 2010 on sn-devel-104

commit 2d66bb51caf02c979f53688257dd33d7366b3ebc
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Oct 1 11:12:24 2010 -0700

    autobuild: cwd is needed on all command types

commit f6bc4c08b19f5615a49d281c0792c7fe4627e9bc
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Oct 1 10:26:49 2010 -0700

    s4-rpmd: fixed a use after realloc bug
    
    we could use old_el after the base message had been re allocated, due
    to adding timestamps. We need to re-find the element before using it
    
    Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>

commit 4beff4d7ba6709009ad81e3becb691b9d81e5611
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Oct 1 10:24:46 2010 -0700

    s4-dsdb: fail the transaction instead of asserting on error
    
    It is more useful to fail the transaction and give the user an error
    message than to assert when we have an error in the repl_meta_data
    module
    
    Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>

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

Summary of changes:
 script/autobuild.py                             |    9 +++++----
 source4/dsdb/samdb/ldb_modules/repl_meta_data.c |   22 ++++++++++++++++++----
 2 files changed, 23 insertions(+), 8 deletions(-)


Changeset truncated at 500 lines:

diff --git a/script/autobuild.py b/script/autobuild.py
index be8006c..a2d2a2c 100755
--- a/script/autobuild.py
+++ b/script/autobuild.py
@@ -58,7 +58,8 @@ tasks = {
                      ("test", "make test", "text/plain"), ],
 }
 
-retry_task = [ '''set -e
+retry_task = [ ( "retry",
+                 '''set -e
                 git remote add -t master master %s
                 git fetch master
                 while :; do
@@ -68,7 +69,7 @@ retry_task = [ '''set -e
                   git describe master/master > master.desc
                   diff old_master.desc master.desc
                 done
-               ''' % samba_master]
+               ''' % samba_master, "test/plain" ) ]
 
 def run_cmd(cmd, dir=".", show=None, output=False, checkfail=True):
     if show is None:
@@ -78,9 +79,9 @@ def run_cmd(cmd, dir=".", show=None, output=False, checkfail=True):
     if output:
         return Popen([cmd], shell=True, stdout=PIPE, cwd=dir).communicate()[0]
     elif checkfail:
-        return check_call(cmd, shell=True)
+        return check_call(cmd, shell=True, cwd=dir)
     else:
-        return call(cmd, shell=True)
+        return call(cmd, shell=True, cwd=dir)
 
 
 class builder(object):
diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
index ebd005e..198bb80 100644
--- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
+++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
@@ -2981,9 +2981,17 @@ static int replmd_replicated_apply_merge(struct replmd_replicated_request *ar)
 	md_remote = replmd_replPropertyMetaData1_find_attid(rmd, DRSUAPI_ATTRIBUTE_name);
 	if (md_remote) {
 		md_local = replmd_replPropertyMetaData1_find_attid(&omd, DRSUAPI_ATTRIBUTE_name);
-		SMB_ASSERT(md_local);
+		if (!md_local) {
+			DEBUG(0,(__location__ ": No md_local in RPMD\n"));
+			return replmd_replicated_request_werror(ar, WERR_DS_DRA_INTERNAL_ERROR);
+		}
 		if (replmd_replPropertyMetaData1_is_newer(md_local, md_remote)) {
-			SMB_ASSERT(ldb_dn_compare(msg->dn, ar->search_msg->dn) != 0);
+			if (ldb_dn_compare(msg->dn, ar->search_msg->dn) != 0) {
+				DEBUG(0,(__location__ ": DNs don't match in RPMD: %s %s\n",
+					 ldb_dn_get_linearized(msg->dn),
+					 ldb_dn_get_linearized(ar->search_msg->dn)));
+				return replmd_replicated_request_werror(ar, WERR_DS_DRA_INTERNAL_ERROR);
+			}
 			/* TODO: Find appropriate local name (dn) for the object
 			 *       and modify msg->dn appropriately */
 
@@ -4008,12 +4016,18 @@ linked_attributes[0]:
 	   has changed */
 	if (add_time_element(msg, "whenChanged", t) != LDB_SUCCESS) {
 		talloc_free(tmp_ctx);
-		return LDB_ERR_OPERATIONS_ERROR;
+		return ldb_operr(ldb);
 	}
 
 	if (add_uint64_element(msg, "uSNChanged", seq_num) != LDB_SUCCESS) {
 		talloc_free(tmp_ctx);
-		return LDB_ERR_OPERATIONS_ERROR;
+		return ldb_operr(ldb);
+	}
+
+	old_el = ldb_msg_find_element(msg, attr->lDAPDisplayName);
+	if (old_el == NULL) {
+		talloc_free(tmp_ctx);
+		return ldb_operr(ldb);
 	}
 
 	ret = dsdb_check_single_valued_link(attr, old_el);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list