The branch, master has been updated via 1e2d2094947 torture: Fix the FreeBSD clang build via e8ac8a357ae samr: Fix CID 1453463: Null pointer dereferences (NULL_RETURNS) via 3a0047eaf18 dsdb: Fix CID 1453464: Error handling issues (CHECKED_RETURN) via 09946c558fa dsdb: Fix CID 1453465: Null pointer dereferences (NULL_RETURNS) from ad4ef1657e9 s3:ldap: Fix join with don't exists machine account
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 1e2d209494769cb23f10d3c8f8f294acdc9147f6 Author: Volker Lendecke <v...@samba.org> Date: Wed Sep 4 11:32:58 2019 +0200 torture: Fix the FreeBSD clang build clang complained that "full_filename==NULL" is always false, because it's a normal stack variable. 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 Sep 4 18:20:22 UTC 2019 on sn-devel-184 commit e8ac8a357aec218807f1b750c004bc2f88aa4b08 Author: Volker Lendecke <v...@samba.org> Date: Tue Sep 3 10:38:35 2019 +0200 samr: Fix CID 1453463: Null pointer dereferences (NULL_RETURNS) Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 3a0047eaf18a1dffdedfd6625aeac9f6d7255045 Author: Volker Lendecke <v...@samba.org> Date: Tue Sep 3 10:35:33 2019 +0200 dsdb: Fix CID 1453464: Error handling issues (CHECKED_RETURN) Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 09946c558fade9ea64f0ef2357bf865c6e1ec441 Author: Volker Lendecke <v...@samba.org> Date: Tue Sep 3 10:29:53 2019 +0200 dsdb: Fix CID 1453465: Null pointer dereferences (NULL_RETURNS) Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> ----------------------------------------------------------------------- Summary of changes: source4/dsdb/samdb/ldb_modules/encrypted_secrets.c | 8 ++++++++ source4/dsdb/schema/schema_set.c | 8 +++++++- source4/rpc_server/samr/dcesrv_samr.c | 5 +++++ source4/torture/libsmbclient/libsmbclient.c | 4 ++-- 4 files changed, 22 insertions(+), 3 deletions(-) Changeset truncated at 500 lines: diff --git a/source4/dsdb/samdb/ldb_modules/encrypted_secrets.c b/source4/dsdb/samdb/ldb_modules/encrypted_secrets.c index 0d46031ec64..7e6d4b160d4 100644 --- a/source4/dsdb/samdb/ldb_modules/encrypted_secrets.c +++ b/source4/dsdb/samdb/ldb_modules/encrypted_secrets.c @@ -834,6 +834,14 @@ static const struct ldb_message *encrypt_secret_attributes( struct ldb_message_element* enc = NULL; if (encrypted_msg == NULL) { encrypted_msg = ldb_msg_copy_shallow(ctx, msg); + if (encrypted_msg == NULL) { + ldb_set_errstring( + ldb, + "Out of memory, allocating " + "ldb_message_element\n"); + *err = LDB_ERR_OPERATIONS_ERROR; + return NULL; + } encrypted_msg->dn = msg->dn; } enc = encrypt_element(err, diff --git a/source4/dsdb/schema/schema_set.c b/source4/dsdb/schema/schema_set.c index 943d0ef49f5..2ee2596570e 100644 --- a/source4/dsdb/schema/schema_set.c +++ b/source4/dsdb/schema/schema_set.c @@ -904,6 +904,7 @@ int dsdb_schema_fill_extended_dn(struct ldb_context *ldb, struct dsdb_schema *sc const struct ldb_val *rdn; struct ldb_val guid; NTSTATUS status; + int ret; struct ldb_dn *dn = ldb_dn_new(NULL, ldb, cur->defaultObjectCategory); if (!dn) { @@ -925,7 +926,12 @@ int dsdb_schema_fill_extended_dn(struct ldb_context *ldb, struct dsdb_schema *sc talloc_free(dn); return ldb_operr(ldb); } - ldb_dn_set_extended_component(dn, "GUID", &guid); + ret = ldb_dn_set_extended_component(dn, "GUID", &guid); + if (ret != LDB_SUCCESS) { + ret = ldb_error(ldb, ret, "Could not set GUID"); + talloc_free(dn); + return ret; + } cur->defaultObjectCategory = ldb_dn_get_extended_linearized(cur, dn, 1); talloc_free(dn); diff --git a/source4/rpc_server/samr/dcesrv_samr.c b/source4/rpc_server/samr/dcesrv_samr.c index 29e1bd4608f..70f914bf14c 100644 --- a/source4/rpc_server/samr/dcesrv_samr.c +++ b/source4/rpc_server/samr/dcesrv_samr.c @@ -1649,6 +1649,11 @@ static int user_iterate_callback(struct ldb_request *req, ent = &(ac->entries[ac->num_entries++]); val = ldb_msg_find_ldb_val(msg, "samaccountname"); + if (val == NULL) { + DBG_WARNING("samaccountname attribute not found\n"); + ret = ldb_request_done(req, LDB_ERR_OPERATIONS_ERROR); + break; + } ent->name.string = talloc_steal(ac->entries, (char *)val->data); ent->idx = rid; diff --git a/source4/torture/libsmbclient/libsmbclient.c b/source4/torture/libsmbclient/libsmbclient.c index 7bc407ac905..b74d87aabed 100644 --- a/source4/torture/libsmbclient/libsmbclient.c +++ b/source4/torture/libsmbclient/libsmbclient.c @@ -421,7 +421,7 @@ static bool torture_libsmbclient_readdirplus_seek(struct torture_context *tctx) filename[i] = talloc_asprintf(tctx, "test_readdirplus_%u.txt", i); - if (full_filename == NULL) { + if (filename[i] == NULL) { torture_fail_goto(tctx, done, "talloc fail\n"); @@ -430,7 +430,7 @@ static bool torture_libsmbclient_readdirplus_seek(struct torture_context *tctx) "%s/%s", dname, filename[i]); - if (full_filename == NULL) { + if (full_filename[i] == NULL) { torture_fail_goto(tctx, done, "talloc fail\n"); -- Samba Shared Repository