[SCM] Samba Shared Repository - branch master updated

Günther Deschner gd at samba.org
Wed Nov 25 13:40:21 MST 2009


The branch, master has been updated
       via  95108f1... s3-registry: fix REG_MULTI_SZ handling in registry_push_value.
       via  c438b2b... s3-kerberos: add check for prerequisite krb5/krb5.h header while checking for krb5/locate_plugin.h.
      from  7ed6f9f... Fix bug 6892 - When a chown operation is issued via Windows Explorer, all ACLS are wiped out. Merges existing DACLs when a ACL set operation comes in with only owner or group values set. Jeremy.

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


- Log -----------------------------------------------------------------
commit 95108f1c60aaa0407aa4eb8c9a567e90302253c6
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 25 21:34:55 2009 +0100

    s3-registry: fix REG_MULTI_SZ handling in registry_push_value.
    
    Catched by smbconftort test on the buildfarm.
    
    Guenther

commit c438b2b3923db66672ec82e795eef543de5fcb8a
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 25 21:33:48 2009 +0100

    s3-kerberos: add check for prerequisite krb5/krb5.h header while checking for krb5/locate_plugin.h.
    
    (Needed for new Heimdal versions).
    
    Guenther

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

Summary of changes:
 source3/configure.in       |    9 +++++++--
 source3/lib/util_reg_api.c |   23 ++++++++++++++++++++---
 2 files changed, 27 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/configure.in b/source3/configure.in
index aab8c01..f624e0e 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -3329,7 +3329,7 @@ if test x"$with_ads_support" != x"no"; then
   # now check for krb5.h. Some systems have the libraries without the headers!
   # note that this check is done here to allow for different kerberos
   # include paths
-  AC_CHECK_HEADERS(krb5.h)
+  AC_CHECK_HEADERS(krb5.h krb5/krb5.h)
 
   if test x"$ac_cv_header_krb5_h" = x"no"; then
 
@@ -3350,7 +3350,12 @@ if test x"$with_ads_support" != x"no"; then
     CPPFLAGS=$ac_save_CPPFLAGS
     LDFLAGS=$ac_save_LDFLAGS
   fi
-  AC_CHECK_HEADERS(krb5/locate_plugin.h)
+  AC_CHECK_HEADERS([krb5/locate_plugin.h], [], [],
+[[#ifdef HAVE_KRB5_KRB5_H
+ #include <krb5/krb5.h>
+ #endif
+]])
+
   if test x"$ac_cv_header_krb5_locate_plugin_h" = x"yes"; then
 	WINBIND_KRB5_LOCATOR="bin/winbind_krb5_locator.$SHLIBEXT"
 	if test x"$BLDSHARED" = x"true" ; then
diff --git a/source3/lib/util_reg_api.c b/source3/lib/util_reg_api.c
index 309fa62..7150444 100644
--- a/source3/lib/util_reg_api.c
+++ b/source3/lib/util_reg_api.c
@@ -161,12 +161,29 @@ WERROR registry_push_value(TALLOC_CTX *mem_ctx,
 		}
 		break;
 	}
-	case REG_MULTI_SZ:
-		if (!push_reg_multi_sz(mem_ctx, presult, (const char **)value->v.multi_sz.strings))
-		{
+	case REG_MULTI_SZ: {
+		/* handle the case where we don't get a NULL terminated array */
+		const char **array;
+		int i;
+
+		array = talloc_array(mem_ctx, const char *,
+				     value->v.multi_sz.num_strings + 1);
+		if (!array) {
+			return WERR_NOMEM;
+		}
+
+		for (i=0; i < value->v.multi_sz.num_strings; i++) {
+			array[i] = value->v.multi_sz.strings[i];
+		}
+		array[i] = NULL;
+
+		if (!push_reg_multi_sz(mem_ctx, presult, array)) {
+			talloc_free(array);
 			return WERR_NOMEM;
 		}
+		talloc_free(array);
 		break;
+	}
 	case REG_BINARY:
 		*presult = data_blob_talloc(mem_ctx,
 					    value->v.binary.data,


-- 
Samba Shared Repository


More information about the samba-cvs mailing list