37
37
char *krb5_overridekeyname = NULL;
39
39
krb5_error_code KRB5_CALLCONV
40
krb5_kt_default_name(krb5_context context, char *name, int namesize)
40
krb5_kt_default_name(krb5_context context, char *name, int name_size)
44
unsigned int namesize = (name_size < 0 ? 0 : name_size);
45
46
if (krb5_overridekeyname) {
46
if ((size_t) namesize < (strlen(krb5_overridekeyname)+1))
47
if (strlcpy(name, krb5_overridekeyname, namesize) >= namesize)
47
48
return KRB5_CONFIG_NOTENUFSPACE;
48
strcpy(name, krb5_overridekeyname);
49
49
} else if ((context->profile_secure == FALSE) &&
50
50
(cp = getenv("KRB5_KTNAME"))) {
51
if ((size_t) namesize < (strlen(cp)+1))
51
if (strlcpy(name, cp, namesize) >= namesize)
52
52
return KRB5_CONFIG_NOTENUFSPACE;
54
53
} else if ((profile_get_string(context->profile,
56
"default_keytab_name", NULL,
54
KRB5_CONF_LIBDEFAULTS,
55
KRB5_CONF_DEFAULT_KEYTAB_NAME, NULL,
57
56
NULL, &retval) == 0) &&
59
if ((size_t) namesize < (strlen(retval)+1))
58
if (strlcpy(name, retval, namesize) >= namesize)
60
59
return KRB5_CONFIG_NOTENUFSPACE;
62
60
profile_release_string(retval);
64
62
#if defined(_WIN32)
70
68
defname[len]= '\0';
71
69
if ( (len + strlen(krb5_defkeyname) + 1) > namesize )
72
70
return KRB5_CONFIG_NOTENUFSPACE;
73
sprintf(name, krb5_defkeyname, defname);
71
snprintf(name, namesize, krb5_defkeyname, defname);
76
if ((size_t) namesize < (strlen(krb5_defkeyname)+1))
74
if (strlcpy(name, krb5_defkeyname, namesize) >= namesize)
77
75
return KRB5_CONFIG_NOTENUFSPACE;
78
strcpy(name, krb5_defkeyname);