[SCM] Samba Shared Repository - branch master updated

Volker Lendecke vlendec at samba.org
Mon Feb 1 12:03:03 UTC 2016


The branch, master has been updated
       via  81cf1fa s3:libads: we always have arcfour-hmac-md5 support
       via  5a0c439 s4:ldap_server: use LDAP_AUTH_METHOD_NOT_SUPPORTED define
       via  90cb84c selftest: specify a maximum runtime for 'make testenv' of 1 year
       via  0b4d3db s4:dsdb/ldb_modules: make it possible to find a reason for LDB_ERR_NO_SUCH_OBJECT in util.c
       via  67d5506 s4:dsdb/common: make it possible to find a reason for LDB_ERR_NO_SUCH_OBJECT
       via  cff0978 s4:dsdb/common: add dsdb_module_werror() helper function
       via  58aa29b s4:dsdb/common: add some const to dsdb_dn_is_upgraded_link_val()
       via  9c09911 drsuapi.idl: add DRSUAPI_ATTID_objectGUID and DRSUAPI_ATTID_replPropertyMetaData
       via  14f1a94 s3:clispnego: fix confusing warning in spnego_gen_krb5_wrap()
      from  8024f53 s3: smbd: Fix timestamp rounding inside SMB2 create.

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


- Log -----------------------------------------------------------------
commit 81cf1fa9e1f49a8c8e0041ddf11f79c3c7ca3fac
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Jan 22 10:00:25 2016 +0100

    s3:libads: we always have arcfour-hmac-md5 support
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Volker Lendecke <vl at samba.org>
    
    Autobuild-User(master): Volker Lendecke <vl at samba.org>
    Autobuild-Date(master): Mon Feb  1 13:02:32 CET 2016 on sn-devel-144

commit 5a0c439eb5cc071fa3a74702eaf619ab45b7c942
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Jul 23 12:17:02 2015 +0200

    s4:ldap_server: use LDAP_AUTH_METHOD_NOT_SUPPORTED define
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Volker Lendecke <vl at samba.org>

commit 90cb84c9052bbe7c23fa6e58a3041f0c05249821
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Jan 22 16:57:15 2016 +0100

    selftest: specify a maximum runtime for 'make testenv' of 1 year
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Volker Lendecke <vl at samba.org>

commit 0b4d3db42d472788c30054d41acc1ad0dc8aefee
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Jan 14 11:50:56 2016 +0100

    s4:dsdb/ldb_modules: make it possible to find a reason for LDB_ERR_NO_SUCH_OBJECT in util.c
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Volker Lendecke <vl at samba.org>

commit 67d550653fb98358755af15eb80396f554aea067
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Jan 14 11:50:56 2016 +0100

    s4:dsdb/common: make it possible to find a reason for LDB_ERR_NO_SUCH_OBJECT
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Volker Lendecke <vl at samba.org>

commit cff0978495da54c019148709a07ccf5f947cf5ec
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Jan 12 15:51:01 2016 +0100

    s4:dsdb/common: add dsdb_module_werror() helper function
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Volker Lendecke <vl at samba.org>

commit 58aa29b8444776874fc409ec0a063567de8b522e
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Jan 28 14:11:52 2016 +0100

    s4:dsdb/common: add some const to dsdb_dn_is_upgraded_link_val()
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Volker Lendecke <vl at samba.org>

commit 9c09911338725d0b9c038df16941284978e7f8bb
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sun Jan 31 19:36:52 2016 +0100

    drsuapi.idl: add DRSUAPI_ATTID_objectGUID and DRSUAPI_ATTID_replPropertyMetaData
    
    These might be usefull in future if we want to fast check
    against dsdb_attribute->attributeID_id, instead of an expensive
    ldb_attr_cmp(). They will never appear in replPropertyMetaData.
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Volker Lendecke <vl at samba.org>

commit 14f1a94b6fb3a55be1e60fe0d28740f04fd94b3f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Jan 28 15:50:06 2016 +0100

    s3:clispnego: fix confusing warning in spnego_gen_krb5_wrap()
    
    asn1_extract_blob() stops further asn1 processing by setting has_error.
    
    Don't call asn1_has_error() after asn1_extract_blob() has been successful
    otherwise we get an "Failed to build krb5 wrapper at" message
    on success.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11702
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Volker Lendecke <vl at samba.org>

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

Summary of changes:
 librpc/idl/drsuapi.idl                |  2 ++
 selftest/selftest.pl                  | 10 +++++++++-
 source3/libads/ldap.c                 |  4 ----
 source3/libsmb/clispnego.c            | 15 ++++++++++-----
 source4/dsdb/common/util.c            | 31 +++++++++++++++++++++----------
 source4/dsdb/common/util.h            | 10 ++++++++++
 source4/dsdb/samdb/ldb_modules/util.c |  5 ++---
 source4/ldap_server/ldap_bind.c       |  2 +-
 8 files changed, 55 insertions(+), 24 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/idl/drsuapi.idl b/librpc/idl/drsuapi.idl
index b78a865..4e1e11c 100644
--- a/librpc/idl/drsuapi.idl
+++ b/librpc/idl/drsuapi.idl
@@ -483,6 +483,8 @@ interface drsuapi
 		DRSUAPI_ATTID_auxiliaryClass			= 0x0002015f,
 		DRSUAPI_ATTID_lDAPDisplayName			= 0x000201cc,
 		DRSUAPI_ATTID_name				= 0x00090001,
+		DRSUAPI_ATTID_objectGUID			= 0x00090002,
+		DRSUAPI_ATTID_replPropertyMetaData		= 0x00090003,
 		DRSUAPI_ATTID_userAccountControl		= 0x00090008,
 		DRSUAPI_ATTID_badPwdCount			= 0x0009000c,
 		DRSUAPI_ATTID_codePage				= 0x00090010,
diff --git a/selftest/selftest.pl b/selftest/selftest.pl
index db5da05..0827376 100755
--- a/selftest/selftest.pl
+++ b/selftest/selftest.pl
@@ -415,7 +415,15 @@ my $testenv_default = "none";
 # must terminate in this time, and testenv will only stay alive this
 # long
 
-my $server_maxtime = 10800;
+my $server_maxtime;
+if ($opt_testenv) {
+    # 1 year should be enough :-)
+    $server_maxtime = 365 * 24 * 60 * 60;
+} else {
+    # make test should run under 3 hours
+    $server_maxtime = 3 * 60 * 60;
+}
+
 if (defined($ENV{SMBD_MAXTIME}) and $ENV{SMBD_MAXTIME} ne "") {
     $server_maxtime = $ENV{SMBD_MAXTIME};
 }
diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c
index 1538500..2c52e32 100644
--- a/source3/libads/ldap.c
+++ b/source3/libads/ldap.c
@@ -2229,10 +2229,6 @@ ADS_STATUS ads_create_machine_acct(ADS_STRUCT *ads, const char *machine_name,
 		goto done;
 	}
 
-#ifndef ENCTYPE_ARCFOUR_HMAC
-	acct_control |= UF_USE_DES_KEY_ONLY;
-#endif
-
 	if (!(controlstr = talloc_asprintf(ctx, "%u", acct_control))) {
 		goto done;
 	}
diff --git a/source3/libsmb/clispnego.c b/source3/libsmb/clispnego.c
index 3300c85..82f13b7 100644
--- a/source3/libsmb/clispnego.c
+++ b/source3/libsmb/clispnego.c
@@ -262,14 +262,19 @@ DATA_BLOB spnego_gen_krb5_wrap(TALLOC_CTX *ctx, const DATA_BLOB ticket, const ui
 		goto err;
 	}
 
+	asn1_free(data);
+	data = NULL;
+
   err:
 
-	if (asn1_has_error(data)) {
-		DEBUG(1, ("Failed to build krb5 wrapper at offset %d\n",
-			  (int)asn1_current_ofs(data)));
-	}
+	if (data != NULL) {
+		if (asn1_has_error(data)) {
+			DEBUG(1, ("Failed to build krb5 wrapper at offset %d\n",
+				  (int)asn1_current_ofs(data)));
+		}
 
-	asn1_free(data);
+		asn1_free(data);
+	}
 
 	return ret;
 }
diff --git a/source4/dsdb/common/util.c b/source4/dsdb/common/util.c
index c1b5d5a..6807726 100644
--- a/source4/dsdb/common/util.c
+++ b/source4/dsdb/common/util.c
@@ -1775,7 +1775,7 @@ int samdb_server_reference_dn(struct ldb_context *ldb, TALLOC_CTX *mem_ctx, stru
 
 	server_dn = samdb_server_dn(ldb, mem_ctx);
 	if (server_dn == NULL) {
-		return LDB_ERR_NO_SUCH_OBJECT;
+		return ldb_error(ldb, LDB_ERR_NO_SUCH_OBJECT, __func__);
 	}
 
 	ret = samdb_reference_dn(ldb, mem_ctx, server_dn, "serverReference", dn);
@@ -2988,7 +2988,7 @@ int dsdb_find_guid_attr_by_dn(struct ldb_context *ldb,
 	}
 	if (res->count < 1) {
 		talloc_free(tmp_ctx);
-		return LDB_ERR_NO_SUCH_OBJECT;
+		return ldb_error(ldb, LDB_ERR_NO_SUCH_OBJECT, __func__);
 	}
 	*guid = samdb_result_guid(res->msgs[0], attribute);
 	talloc_free(tmp_ctx);
@@ -3064,12 +3064,12 @@ int dsdb_find_sid_by_dn(struct ldb_context *ldb,
 	}
 	if (res->count < 1) {
 		talloc_free(tmp_ctx);
-		return LDB_ERR_NO_SUCH_OBJECT;
+		return ldb_error(ldb, LDB_ERR_NO_SUCH_OBJECT, __func__);
 	}
 	s = samdb_result_dom_sid(tmp_ctx, res->msgs[0], "objectSid");
 	if (s == NULL) {
 		talloc_free(tmp_ctx);
-		return LDB_ERR_NO_SUCH_OBJECT;
+		return ldb_error(ldb, LDB_ERR_NO_SUCH_OBJECT, __func__);
 	}
 	*sid = *s;
 	talloc_free(tmp_ctx);
@@ -3481,7 +3481,7 @@ int samdb_ntds_site_settings_options(struct ldb_context *ldb_ctx,
 failed:
 	DEBUG(1,("Failed to find our NTDS Site Settings options in ldb!\n"));
 	talloc_free(tmp_ctx);
-	return LDB_ERR_NO_SUCH_OBJECT;
+	return ldb_error(ldb_ctx, LDB_ERR_NO_SUCH_OBJECT, __func__);
 }
 
 /*
@@ -3519,7 +3519,7 @@ int samdb_ntds_options(struct ldb_context *ldb, uint32_t *options)
 failed:
 	DEBUG(1,("Failed to find our own NTDS Settings options in the ldb!\n"));
 	talloc_free(tmp_ctx);
-	return LDB_ERR_NO_SUCH_OBJECT;
+	return ldb_error(ldb, LDB_ERR_NO_SUCH_OBJECT, __func__);
 }
 
 const char* samdb_ntds_object_category(TALLOC_CTX *tmp_ctx, struct ldb_context *ldb)
@@ -3766,7 +3766,7 @@ bool dsdb_dn_is_deleted_val(const struct ldb_val *val)
   return true if a ldb_val containing a DN in storage form is
   in the upgraded w2k3 linked attribute format
  */
-bool dsdb_dn_is_upgraded_link_val(struct ldb_val *val)
+bool dsdb_dn_is_upgraded_link_val(const struct ldb_val *val)
 {
 	return memmem(val->data, val->length, "<RMD_VERSION=", 13) != NULL;
 }
@@ -3897,7 +3897,7 @@ int dsdb_find_nc_root(struct ldb_context *samdb, TALLOC_CTX *mem_ctx, struct ldb
        }
 
        talloc_free(tmp_ctx);
-       return LDB_ERR_NO_SUCH_OBJECT;
+       return ldb_error(samdb, LDB_ERR_NO_SUCH_OBJECT, __func__);
 }
 
 
@@ -3930,7 +3930,7 @@ int dsdb_tombstone_lifetime(struct ldb_context *ldb, uint32_t *lifetime)
 	struct ldb_dn *dn;
 	dn = ldb_get_config_basedn(ldb);
 	if (!dn) {
-		return LDB_ERR_NO_SUCH_OBJECT;
+		return ldb_error(ldb, LDB_ERR_NO_SUCH_OBJECT, __func__);
 	}
 	dn = ldb_dn_copy(ldb, dn);
 	if (!dn) {
@@ -4489,7 +4489,7 @@ int dsdb_search(struct ldb_context *ldb,
 		if (res->count == 0) {
 			talloc_free(tmp_ctx);
 			ldb_reset_err_string(ldb);
-			return LDB_ERR_NO_SUCH_OBJECT;
+			return ldb_error(ldb, LDB_ERR_NO_SUCH_OBJECT, __func__);
 		}
 		if (res->count != 1) {
 			talloc_free(tmp_ctx);
@@ -4867,6 +4867,17 @@ bool is_attr_in_list(const char * const * attrs, const char *attr)
 	return false;
 }
 
+int dsdb_werror_at(struct ldb_context *ldb, int ldb_ecode, WERROR werr,
+		   const char *location, const char *func,
+		   const char *reason)
+{
+	if (reason == NULL) {
+		reason = win_errstr(werr);
+	}
+	ldb_asprintf_errstring(ldb, "%08X: %s at %s:%s",
+			       W_ERROR_V(werr), reason, location, func);
+	return ldb_ecode;
+}
 
 /*
   map an ldb error code to an approximate NTSTATUS code
diff --git a/source4/dsdb/common/util.h b/source4/dsdb/common/util.h
index dcf3fc4..1085073 100644
--- a/source4/dsdb/common/util.h
+++ b/source4/dsdb/common/util.h
@@ -69,4 +69,14 @@ struct GUID;
 char *NS_GUID_string(TALLOC_CTX *mem_ctx, const struct GUID *guid);
 NTSTATUS NS_GUID_from_string(const char *s, struct GUID *guid);
 
+struct ldb_context;
+
+int dsdb_werror_at(struct ldb_context *ldb, int ldb_ecode, WERROR werr,
+		   const char *location, const char *func,
+		   const char *reason);
+
+#define dsdb_module_werror(module, ldb_ecode, werr, reason) \
+	dsdb_werror_at(ldb_module_get_ctx(module), ldb_ecode, werr, \
+		       __location__, __func__, reason)
+
 #endif /* __DSDB_COMMON_UTIL_H__ */
diff --git a/source4/dsdb/samdb/ldb_modules/util.c b/source4/dsdb/samdb/ldb_modules/util.c
index 1455760..5f995de 100644
--- a/source4/dsdb/samdb/ldb_modules/util.c
+++ b/source4/dsdb/samdb/ldb_modules/util.c
@@ -177,8 +177,7 @@ int dsdb_module_search_tree(struct ldb_module *module,
 	if (dsdb_flags & DSDB_SEARCH_ONE_ONLY) {
 		if (res->count == 0) {
 			talloc_free(tmp_ctx);
-			ldb_reset_err_string(ldb_module_get_ctx(module));
-			return LDB_ERR_NO_SUCH_OBJECT;
+			return ldb_error(ldb_module_get_ctx(module), LDB_ERR_NO_SUCH_OBJECT, __func__);
 		}
 		if (res->count != 1) {
 			talloc_free(tmp_ctx);
@@ -279,7 +278,7 @@ int dsdb_module_dn_by_guid(struct ldb_module *module, TALLOC_CTX *mem_ctx,
 	}
 	if (res->count == 0) {
 		talloc_free(tmp_ctx);
-		return LDB_ERR_NO_SUCH_OBJECT;
+		return ldb_error(ldb_module_get_ctx(module), LDB_ERR_NO_SUCH_OBJECT, __func__);
 	}
 	if (res->count != 1) {
 		ldb_asprintf_errstring(ldb_module_get_ctx(module), "More than one object found matching objectGUID %s\n",
diff --git a/source4/ldap_server/ldap_bind.c b/source4/ldap_server/ldap_bind.c
index 69a6b61..fcbdadf 100644
--- a/source4/ldap_server/ldap_bind.c
+++ b/source4/ldap_server/ldap_bind.c
@@ -354,7 +354,7 @@ NTSTATUS ldapsrv_BindRequest(struct ldapsrv_call *call)
 	}
 
 	resp = &reply->msg->r.BindResponse;
-	resp->response.resultcode = 7;
+	resp->response.resultcode = LDAP_AUTH_METHOD_NOT_SUPPORTED;
 	resp->response.dn = NULL;
 	resp->response.errormessage = talloc_asprintf(reply, "Bad AuthenticationChoice [%d]", req->mechanism);
 	resp->response.referral = NULL;


-- 
Samba Shared Repository



More information about the samba-cvs mailing list