[SCM] Samba Shared Repository - branch master updated

Kamen Mazdrashki kamenim at samba.org
Mon Jan 17 16:41:01 MST 2011


The branch, master has been updated
       via  1667ff7 s4-ldb_ldif: Take into account LDB_FLG_SHOW_BINARY
       via  fb0df53 s4-ldb_ldif: Don't check for LDB_FLG_SHOW_BINARY in ldb_should_b64_encode
      from  622ef6a s4-provision: Fixed owner/group for hard-coded Sites descriptor.

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


- Log -----------------------------------------------------------------
commit 1667ff79caa91d6bd97df127fb4a3b3d0fa5c3a1
Author: Kamen Mazdrashki <kamenim at samba.org>
Date:   Tue Jan 18 00:51:30 2011 +0200

    s4-ldb_ldif: Take into account LDB_FLG_SHOW_BINARY
    
    when user requires binary data to be displayed
    using samba user-friendly ldif handlers
    
    Found using following test search:
    bin/ldbsearch -H st/dc/private/sam.ldb -b "CN=Deleted Objects,DC=samba,DC=example,DC=com" \
     "(objectGUID=97b52eac-6d89-434d-b935-1e5f2e086ffc)" replPropertyMetaData --show-deleted --show-binary
    
    Autobuild-User: Kamen Mazdrashki <kamenim at samba.org>
    Autobuild-Date: Tue Jan 18 00:40:01 CET 2011 on sn-devel-104

commit fb0df534f46ccee8d541d5512abbcc9cd8247e53
Author: Kamen Mazdrashki <kamenim at samba.org>
Date:   Tue Jan 18 00:49:17 2011 +0200

    s4-ldb_ldif: Don't check for LDB_FLG_SHOW_BINARY in ldb_should_b64_encode
    
    LDB_FLG_SHOW_BINARY is data representation flag and should
    not modify behavior of data checking functions.
    
    This lead to a bug in lib/ldb/ldb_tdb/ldb_index.c as ltdb_index_key()
    function relies on ldb_should_b64_encode function to determine
    how to process index keys.
    
    Found using following test search:
    bin/ldbsearch -H st/dc/private/sam.ldb -b "CN=Deleted Objects,DC=samba,DC=example,DC=com" \
     "(objectGUID=97b52eac-6d89-434d-b935-1e5f2e086ffc)" replPropertyMetaData --show-deleted --show-binary

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

Summary of changes:
 source4/lib/ldb/common/ldb_ldif.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/lib/ldb/common/ldb_ldif.c b/source4/lib/ldb/common/ldb_ldif.c
index 2628d4d..f837012 100644
--- a/source4/lib/ldb/common/ldb_ldif.c
+++ b/source4/lib/ldb/common/ldb_ldif.c
@@ -190,10 +190,6 @@ int ldb_should_b64_encode(struct ldb_context *ldb, const struct ldb_val *val)
 	unsigned int i;
 	uint8_t *p = val->data;
 
-	if (ldb->flags & LDB_FLG_SHOW_BINARY) {
-		return 0;
-	}
-
 	if (val->length == 0) {
 		return 0;
 	}
@@ -333,11 +329,14 @@ int ldb_ldif_write(struct ldb_context *ldb,
 
 		for (j=0;j<msg->elements[i].num_values;j++) {
 			struct ldb_val v;
+			bool use_b64_encode;
 			ret = a->syntax->ldif_write_fn(ldb, mem_ctx, &msg->elements[i].values[j], &v);
 			if (ret != LDB_SUCCESS) {
 				v = msg->elements[i].values[j];
 			}
-			if (ret != LDB_SUCCESS || ldb_should_b64_encode(ldb, &v)) {
+			use_b64_encode = !(ldb->flags & LDB_FLG_SHOW_BINARY)
+					&& ldb_should_b64_encode(ldb, &v);
+			if (ret != LDB_SUCCESS || use_b64_encode) {
 				ret = fprintf_fn(private_data, "%s:: ", 
 						 msg->elements[i].name);
 				CHECK_RET;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list