The branch, master has been updated via fa2d5b3daa0 lib: Fix return of server_id_db_prune_name() via f4430086fa2 tdb: Adapt _tdb_transaction_cancel() to README.Coding via 4ef5a42ca20 tdb: Adapt tdb_rescue() to README.Coding via c3bad08e2b0 lib/krb5_wrap: Fix leaking using mkstemp from 9b017ab0465 smbd: Simplify filename_convert_internal()
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit fa2d5b3daa0eaae41e2c2348cb2a81adf9da3b62 Author: Volker Lendecke <v...@samba.org> Date: Mon Jul 1 21:07:55 2019 +0200 lib: Fix return of server_id_db_prune_name() The tdb routines return 0/-1 and return the specific error via tdb_error(). server_id_db_prune_name() is expected to return an errno, not 0/-1. Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Noel Power <npo...@samba.org> Autobuild-User(master): Noel Power <npo...@samba.org> Autobuild-Date(master): Wed Jul 3 10:51:32 UTC 2019 on sn-devel-184 commit f4430086fa2345c9ccf94644d92c08fd47f6a493 Author: Volker Lendecke <v...@samba.org> Date: Mon Jul 1 21:02:21 2019 +0200 tdb: Adapt _tdb_transaction_cancel() to README.Coding Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Noel Power <npo...@samba.org> commit 4ef5a42ca2025b10674a4800d471ea29735c0906 Author: Volker Lendecke <v...@samba.org> Date: Mon Jul 1 21:00:23 2019 +0200 tdb: Adapt tdb_rescue() to README.Coding Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Noel Power <npo...@samba.org> commit c3bad08e2b0913e5e49ffadb4780bb51154a3215 Author: Noel Power <noel.po...@suse.com> Date: Tue Jul 2 09:29:47 2019 +0100 lib/krb5_wrap: Fix leaking using mkstemp commit: 8b92539997a9df8e0d217790fd82fc8f59ea50cc introduced a leak by replacing mktemp with mkstemp (mkstemp returns an open fd) Signed-off-by: Noel Power <noel.po...@suse.com> Reviewed-by: Andreas Schneider <a...@samba.org> ----------------------------------------------------------------------- Summary of changes: lib/krb5_wrap/krb5_samba.c | 7 +++++-- lib/tdb/common/rescue.c | 2 +- lib/tdb/common/transaction.c | 2 +- lib/util/server_id_db.c | 7 ++++++- 4 files changed, 13 insertions(+), 5 deletions(-) Changeset truncated at 500 lines: diff --git a/lib/krb5_wrap/krb5_samba.c b/lib/krb5_wrap/krb5_samba.c index 37257ddfe03..72889fffcf0 100644 --- a/lib/krb5_wrap/krb5_samba.c +++ b/lib/krb5_wrap/krb5_samba.c @@ -2001,6 +2001,7 @@ krb5_error_code smb_krb5_kinit_keyblock_ccache(krb5_context ctx, char tmp_name[sizeof(SMB_CREDS_KEYTAB)]; krb5_keytab_entry entry; krb5_keytab keytab; + int tmpfd; mode_t mask; memset(&entry, 0, sizeof(entry)); @@ -2009,11 +2010,13 @@ krb5_error_code smb_krb5_kinit_keyblock_ccache(krb5_context ctx, memcpy(tmp_name, SMB_CREDS_KEYTAB, sizeof(SMB_CREDS_KEYTAB)); mask = umask(S_IRWXO | S_IRWXG); - mkstemp(tmp_name); + tmpfd = mkstemp(tmp_name); umask(mask); - if (tmp_name[0] == 0) { + if (tmpfd == -1) { + DBG_ERR("Failed to mkstemp %s\n", tmp_name); return KRB5_KT_BADNAME; } + close(tmpfd); code = krb5_kt_resolve(ctx, tmp_name, &keytab); if (code) { return code; diff --git a/lib/tdb/common/rescue.c b/lib/tdb/common/rescue.c index 7e6580957bb..e608db41dea 100644 --- a/lib/tdb/common/rescue.c +++ b/lib/tdb/common/rescue.c @@ -300,7 +300,7 @@ _PUBLIC_ int tdb_rescue(struct tdb_context *tdb, qsort(found.arr, found.num, sizeof(found.arr[0]), cmp_key); } - for (i = 0; found.arr && i < found.num; ) { + for (i = 0; (found.arr != NULL) && i < found.num; ) { unsigned int num, num_in_hash = 0; /* How many are identical? */ diff --git a/lib/tdb/common/transaction.c b/lib/tdb/common/transaction.c index 06710896b6b..e9b0b26ea59 100644 --- a/lib/tdb/common/transaction.c +++ b/lib/tdb/common/transaction.c @@ -610,7 +610,7 @@ static int _tdb_transaction_cancel(struct tdb_context *tdb) /* free all the transaction blocks */ for (i=0;i<tdb->transaction->num_blocks;i++) { - if (tdb->transaction->blocks && + if ((tdb->transaction->blocks != NULL) && tdb->transaction->blocks[i] != NULL) { free(tdb->transaction->blocks[i]); } diff --git a/lib/util/server_id_db.c b/lib/util/server_id_db.c index bb61f316d29..17b157706b4 100644 --- a/lib/util/server_id_db.c +++ b/lib/util/server_id_db.c @@ -184,7 +184,12 @@ int server_id_db_prune_name(struct server_id_db *db, const char *name, tdb_chainunlock(tdb, key); - return ret; + if (ret == -1) { + enum TDB_ERROR err = tdb_error(tdb); + return map_unix_error_from_tdb(err); + } + + return 0; } int server_id_db_remove(struct server_id_db *db, const char *name) -- Samba Shared Repository