The branch, master has been updated via fb81fb2 libads: Simplify parse_spn() via 75ced0d libads: Fix an error path talloc leak via 781faca dsdb: Fix a typo via 09acfb7 dsdb: Fix CID 1438461 Error handling issues (CHECKED_RETURN) via f16d917 libgpo: Fix CID 1438462 Error handling issues (CHECKED_RETURN) from 7460d9b smbd: Remove koplocks->contend_level2 callbacks
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit fb81fb2d93be7fdf5081a057e4d70d9f53a72df3 Author: Volker Lendecke <v...@samba.org> Date: Tue Aug 21 21:22:42 2018 +0200 libads: Simplify parse_spn() A few lines less and quite some bytes less .text Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Wed Aug 22 03:59:51 CEST 2018 on sn-devel-144 commit 75ced0d15514b2d4707eb1813c461f135d9d20bf Author: Volker Lendecke <v...@samba.org> Date: Tue Aug 21 21:19:49 2018 +0200 libads: Fix an error path talloc leak Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 781faca0cb9b11a048c843e35ee98c82b912e05b Author: Volker Lendecke <v...@samba.org> Date: Tue Aug 21 21:11:43 2018 +0200 dsdb: Fix a typo Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 09acfb762a734bb71f2623da55230006bfda35e0 Author: Volker Lendecke <v...@samba.org> Date: Tue Aug 21 21:41:05 2018 +0200 dsdb: Fix CID 1438461 Error handling issues (CHECKED_RETURN) Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit f16d917297031d6fc92667b83b9c842195c63bf8 Author: Volker Lendecke <v...@samba.org> Date: Tue Aug 21 21:38:01 2018 +0200 libgpo: Fix CID 1438462 Error handling issues (CHECKED_RETURN) Yes, this creates a leak of "data", but the other error exits in this function are the same. Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> ----------------------------------------------------------------------- Summary of changes: source3/libads/util.c | 21 +++++++++------------ source3/libgpo/gpext/registry.c | 14 ++++++++++++-- source4/dsdb/repl/replicated_objects.c | 5 +++-- source4/dsdb/samdb/ldb_modules/repl_meta_data.c | 10 +++++++--- 4 files changed, 31 insertions(+), 19 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/libads/util.c b/source3/libads/util.c index 68c7aed..354125b 100644 --- a/source3/libads/util.c +++ b/source3/libads/util.c @@ -166,7 +166,7 @@ struct spn_struct *parse_spn(TALLOC_CTX *ctx, const char *srvprinc) result->serviceclass = talloc_strdup(result, srvprinc); if (result->serviceclass == NULL) { DBG_ERR("Out of memory\n"); - return NULL; + goto fail; } result->port = -1; @@ -175,8 +175,7 @@ struct spn_struct *parse_spn(TALLOC_CTX *ctx, const char *srvprinc) /* illegal */ DBG_ERR("Failed to parse spn %s, no host definition\n", srvprinc); - TALLOC_FREE(result); - goto out; + goto fail; } /* terminate service principal */ @@ -204,23 +203,20 @@ struct spn_struct *parse_spn(TALLOC_CTX *ctx, const char *srvprinc) /* illegal */ DBG_ERR("Failed to parse spn %s, illegal host definition\n", srvprinc); - TALLOC_FREE(result); - goto out; + goto fail; } result->host = host_str; if (result->servicename != NULL && (strlen(result->servicename) == 0)) { DBG_ERR("Failed to parse spn %s, empty servicename " "definition\n", srvprinc); - TALLOC_FREE(result); - goto out; + goto fail; } if (port_str != NULL) { if (strlen(port_str) == 0) { DBG_ERR("Failed to parse spn %s, empty port " "definition\n", srvprinc); - TALLOC_FREE(result); - goto out; + goto fail; } result->port = (int32_t)strtol(port_str, NULL, 10); if (result->port <= 0 @@ -229,10 +225,11 @@ struct spn_struct *parse_spn(TALLOC_CTX *ctx, const char *srvprinc) DBG_ERR("Failed to parse spn %s, port number " "convertion failed\n", srvprinc); errno = 0; - TALLOC_FREE(result); - goto out; + goto fail; } } -out: return result; +fail: + TALLOC_FREE(result); + return NULL; } diff --git a/source3/libgpo/gpext/registry.c b/source3/libgpo/gpext/registry.c index 525493f..ffa1d02 100644 --- a/source3/libgpo/gpext/registry.c +++ b/source3/libgpo/gpext/registry.c @@ -111,6 +111,7 @@ static bool gp_reg_entry_from_file_entry(TALLOC_CTX *mem_ctx, struct registry_value *data = NULL; struct gp_registry_entry *entry = NULL; enum gp_reg_action action = GP_REG_ACTION_NONE; + enum ndr_err_code ndr_err; ZERO_STRUCTP(*reg_entry); @@ -120,8 +121,17 @@ static bool gp_reg_entry_from_file_entry(TALLOC_CTX *mem_ctx, data->type = r->type; - ndr_push_union_blob(&data->data, mem_ctx, &r->data, r->type, - (ndr_push_flags_fn_t)ndr_push_winreg_Data); + ndr_err = ndr_push_union_blob( + &data->data, + mem_ctx, + &r->data, + r->type, + (ndr_push_flags_fn_t)ndr_push_winreg_Data); + if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { + DBG_WARNING("ndr_push_winreg_Data failed: %s\n", + ndr_errstr(ndr_err)); + return false; + } entry = talloc_zero(mem_ctx, struct gp_registry_entry); if (!entry) diff --git a/source4/dsdb/repl/replicated_objects.c b/source4/dsdb/repl/replicated_objects.c index fd7491d..fd567e9 100644 --- a/source4/dsdb/repl/replicated_objects.c +++ b/source4/dsdb/repl/replicated_objects.c @@ -607,8 +607,9 @@ WERROR dsdb_convert_object_ex(struct ldb_context *ldb, } } else { if (!(instanceType & INSTANCE_TYPE_WRITE)) { - DEBUG(0, ("Refusing to replicate %s from a read-only repilca into a read-write replica!\n", - ldb_dn_get_linearized(msg->dn))); + DBG_ERR("Refusing to replicate %s from a read-only " + "replica into a read-write replica!\n", + ldb_dn_get_linearized(msg->dn)); return WERR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA; } } diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c index c4a41a2..584fd21 100644 --- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c +++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c @@ -4685,6 +4685,7 @@ static int replmd_make_prefix_child_dn(TALLOC_CTX *tmp_ctx, { struct ldb_val deleted_child_rdn_val; struct GUID_txt_buf guid_str; + int ret; bool retb; GUID_buf_string(&guid, &guid_str); @@ -4751,10 +4752,13 @@ static int replmd_make_prefix_child_dn(TALLOC_CTX *tmp_ctx, sizeof(guid_str.buf)); /* Now set the value into the RDN, without parsing it */ - ldb_dn_set_component(dn, 0, rdn_name, - deleted_child_rdn_val); + ret = ldb_dn_set_component( + dn, + 0, + rdn_name, + deleted_child_rdn_val); - return LDB_SUCCESS; + return ret; } -- Samba Shared Repository