The branch, master has been updated via 3fba9ba dsdb: reset schema->{classes,attributes}_to_remove_size to 0 via d2f8471 dsdb: use the correct talloc parent in dsdb_repl_merge_working_schema() via 5263f0a Revert "s4-dsdb: Remove strcasecmp() fallback in replmd_ldb_message_element_attid_sort" from 424a990 s4-dfs_server: check for netbios aliases in ad_get_referrals
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 3fba9ba7ea85e33faac2718d2463c5d0cd2d85f4 Author: Stefan Metzmacher <me...@samba.org> Date: Mon Jun 10 10:46:41 2013 +0200 dsdb: reset schema->{classes,attributes}_to_remove_size to 0 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> Autobuild-User(master): Stefan Metzmacher <me...@samba.org> Autobuild-Date(master): Tue Jun 11 11:40:39 CEST 2013 on sn-devel-104 commit d2f847149d3d1310c829169564704b45ac43e978 Author: Stefan Metzmacher <me...@samba.org> Date: Mon Jun 10 10:45:25 2013 +0200 dsdb: use the correct talloc parent in dsdb_repl_merge_working_schema() schema->{classes,attributes} are the DLIST pointer not an array. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit 5263f0a626dac3ac1fc48ece2324438279f187f0 Author: Andrew Bartlett <abart...@samba.org> Date: Wed Jun 5 20:44:17 2013 +1000 Revert "s4-dsdb: Remove strcasecmp() fallback in replmd_ldb_message_element_attid_sort" This reverts commit d799b25dd3ed0f72ee03949225ba241c5538d7d6. Sometimes the schema just isn't right. A segfault is not the correct answer in those cases. Andrew Bartlett Reviewed-by: Stefan Metzmacher <me...@samba.org> ----------------------------------------------------------------------- Summary of changes: source4/dsdb/repl/replicated_objects.c | 4 ++-- source4/dsdb/samdb/ldb_modules/repl_meta_data.c | 7 +++++++ source4/dsdb/schema/schema_set.c | 4 +++- 3 files changed, 12 insertions(+), 3 deletions(-) Changeset truncated at 500 lines: diff --git a/source4/dsdb/repl/replicated_objects.c b/source4/dsdb/repl/replicated_objects.c index b0abc1a..e018aa4 100644 --- a/source4/dsdb/repl/replicated_objects.c +++ b/source4/dsdb/repl/replicated_objects.c @@ -58,7 +58,7 @@ static WERROR dsdb_repl_merge_working_schema(struct ldb_context *ldb, * as the rest won't be modified and this is for * a short lived object. */ - tmp2 = talloc(dest_schema->classes, struct dsdb_class); + tmp2 = talloc(dest_schema, struct dsdb_class); if (tmp2 == NULL) { return WERR_NOMEM; } @@ -85,7 +85,7 @@ static WERROR dsdb_repl_merge_working_schema(struct ldb_context *ldb, * as the rest won't be modified and this is for * a short lived object. */ - tmp2 = talloc(dest_schema->attributes, struct dsdb_attribute); + tmp2 = talloc(dest_schema, struct dsdb_attribute); if (tmp2 == NULL) { return WERR_NOMEM; } diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c index 98e60d7..24dcc6f 100644 --- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c +++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c @@ -663,6 +663,13 @@ static int replmd_ldb_message_element_attid_sort(const struct ldb_message_elemen a1 = dsdb_attribute_by_lDAPDisplayName(schema, e1->name); a2 = dsdb_attribute_by_lDAPDisplayName(schema, e2->name); + /* + * TODO: remove this check, we should rely on e1 and e2 having valid attribute names + * in the schema + */ + if (!a1 || !a2) { + return strcasecmp(e1->name, e2->name); + } if (a1->attributeID_id == a2->attributeID_id) { return 0; } diff --git a/source4/dsdb/schema/schema_set.c b/source4/dsdb/schema/schema_set.c index 73264f9..ce8facb 100644 --- a/source4/dsdb/schema/schema_set.c +++ b/source4/dsdb/schema/schema_set.c @@ -338,8 +338,10 @@ int dsdb_setup_sorted_accessors(struct ldb_context *ldb, TALLOC_FREE(schema->attributes_to_remove[i]); } - TALLOC_FREE(schema->attributes_to_remove); TALLOC_FREE(schema->classes_to_remove); + schema->classes_to_remove_size = 0; + TALLOC_FREE(schema->attributes_to_remove); + schema->attributes_to_remove_size = 0; /* free all caches */ dsdb_sorted_accessors_free(schema); -- Samba Shared Repository