char tmp_name[sizeof(SMB_CREDS_KEYTAB)];
krb5_keytab_entry entry;
krb5_keytab keytab;
+ int tmpfd;
mode_t mask;
memset(&entry, 0, sizeof(entry));
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;