From c3bad08e2b0913e5e49ffadb4780bb51154a3215 Mon Sep 17 00:00:00 2001 From: Noel Power Date: Tue, 2 Jul 2019 09:29:47 +0100 Subject: [PATCH] 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 Reviewed-by: Andreas Schneider --- lib/krb5_wrap/krb5_samba.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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; -- 2.47.3