diff options
author | Noel Power <noel.power@suse.com> | 2019-07-02 09:29:47 +0100 |
---|---|---|
committer | Noel Power <npower@samba.org> | 2019-07-03 08:55:23 +0000 |
commit | c3bad08e2b0913e5e49ffadb4780bb51154a3215 (patch) | |
tree | c509b2d57d659cc099e1209922a69183aa32a9bb /lib | |
parent | 9b017ab0465f912de738ba0679b378e8a49fba5f (diff) | |
download | samba-c3bad08e2b0913e5e49ffadb4780bb51154a3215.tar.gz |
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.power@suse.com>
Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/krb5_wrap/krb5_samba.c | 7 |
1 files 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; |