[SCM] Samba Shared Repository - branch master updated

Kamen Mazdrashki kamenim at samba.org
Mon May 10 14:49:22 MDT 2010


The branch, master has been updated
       via  983606d... s4/tort: Add test for comparing special DNs
       via  1f3faea... s4/dn: handle case 'base' dn has no components
      from  7cf1a29... s4-smbtorture: add smbcli_rap_netoemchangepassword().

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


- Log -----------------------------------------------------------------
commit 983606dbe0a23cab28d0f33a32a0e4ab0acf99a7
Author: Kamen Mazdrashki <kamenim at samba.org>
Date:   Sat May 8 10:20:00 2010 +0300

    s4/tort: Add test for comparing special DNs

commit 1f3faea0463782d16bdbfd34b3b51624aca2bc90
Author: Kamen Mazdrashki <kamenim at samba.org>
Date:   Sat May 8 10:19:14 2010 +0300

    s4/dn: handle case 'base' dn has no components
    
    This could if the 'base' dn is special for example.

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

Summary of changes:
 source4/lib/ldb/common/ldb_dn.c |    2 +-
 source4/torture/ldb/ldb.c       |   18 ++++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/lib/ldb/common/ldb_dn.c b/source4/lib/ldb/common/ldb_dn.c
index d91e9d9..00646f6 100644
--- a/source4/lib/ldb/common/ldb_dn.c
+++ b/source4/lib/ldb/common/ldb_dn.c
@@ -1065,7 +1065,7 @@ int ldb_dn_compare_base(struct ldb_dn *base, struct ldb_dn *dn)
 		return (dn->comp_num - base->comp_num);
 	}
 
-	if (dn->comp_num == 0) {
+	if ((dn->comp_num == 0) || (base->comp_num == 0)) {
 		if (dn->special && base->special) {
 			return strcmp(base->linearized, dn->linearized);
 		} else if (dn->special) {
diff --git a/source4/torture/ldb/ldb.c b/source4/torture/ldb/ldb.c
index dbfd96c..8bc6357 100644
--- a/source4/torture/ldb/ldb.c
+++ b/source4/torture/ldb/ldb.c
@@ -587,6 +587,7 @@ static bool torture_ldb_dn(struct torture_context *torture)
 	struct ldb_dn *dn;
 	struct ldb_dn *child_dn;
 	struct ldb_dn *typo_dn;
+	struct ldb_dn *special_dn;
 	struct ldb_val val;
 
 	torture_assert(torture, 
@@ -656,6 +657,23 @@ static bool torture_ldb_dn(struct torture_context *torture)
 		       ldb_dn_compare_base(dn, typo_dn) != 0,
 		       "Base Comparison on dc=samba,dc=org and c=samba,dc=org should != 0");
 
+	/* Check comparisons with a special DN */
+	torture_assert(torture,
+		       special_dn = ldb_dn_new(mem_ctx, ldb, "@special_dn"),
+		       "Failed to create 'special' DN");
+
+	torture_assert(torture,
+		       ldb_dn_compare(dn, special_dn) != 0,
+		       "Comparison on dc=samba,dc=org and @special_dn should != 0");
+
+	torture_assert(torture,
+		       ldb_dn_compare_base(special_dn, dn) > 0,
+		       "Base Comparison of @special_dn and dc=samba,dc=org should > 0");
+
+	torture_assert(torture,
+		       ldb_dn_compare_base(dn, special_dn) < 0,
+		       "Base Comparison on dc=samba,dc=org and @special_dn should < 0");
+
 	/* Check DN based on MS-ADTS:3.1.1.5.1.2 Naming Constraints*/
 	torture_assert(torture,
 		       dn = ldb_dn_new(mem_ctx, ldb, "CN=New\nLine,DC=SAMBA,DC=org"),


-- 
Samba Shared Repository


More information about the samba-cvs mailing list