summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorNoel Power <noel.power@suse.com>2019-07-02 09:29:47 +0100
committerNoel Power <npower@samba.org>2019-07-03 08:55:23 +0000
commitc3bad08e2b0913e5e49ffadb4780bb51154a3215 (patch)
treec509b2d57d659cc099e1209922a69183aa32a9bb /lib
parent9b017ab0465f912de738ba0679b378e8a49fba5f (diff)
downloadsamba-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.c7
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;