kdc: conform _kdc_make_anonymous_principalname() to RFC8062
The utility function _kdc_make_anonymous_principalname() previously returned a principal of "anonymous" rather than "WELLKNOWN/ANONYMOUS", as specified by RFC8062. This is not used by the AS-REQ code.
This commit is contained in:

committed by
Jeffrey Altman

parent
7a7eb9de2f
commit
5c8f48495e
@@ -251,18 +251,30 @@ _kdc_find_etype(krb5_context context, krb5_boolean use_strongest_session_key,
|
||||
krb5_error_code
|
||||
_kdc_make_anonymous_principalname (PrincipalName *pn)
|
||||
{
|
||||
pn->name_type = KRB5_NT_PRINCIPAL;
|
||||
pn->name_string.len = 1;
|
||||
pn->name_string.val = malloc(sizeof(*pn->name_string.val));
|
||||
pn->name_type = KRB5_NT_WELLKNOWN;
|
||||
pn->name_string.len = 2;
|
||||
pn->name_string.val = calloc(2, sizeof(*pn->name_string.val));
|
||||
if (pn->name_string.val == NULL)
|
||||
return ENOMEM;
|
||||
pn->name_string.val[0] = strdup("anonymous");
|
||||
if (pn->name_string.val[0] == NULL) {
|
||||
free(pn->name_string.val);
|
||||
pn->name_string.val = NULL;
|
||||
return ENOMEM;
|
||||
}
|
||||
goto failed;
|
||||
|
||||
pn->name_string.val[0] = strdup(KRB5_WELLKNOWN_NAME);
|
||||
if (pn->name_string.val[0] == NULL)
|
||||
goto failed;
|
||||
|
||||
pn->name_string.val[1] = strdup(KRB5_ANON_NAME);
|
||||
if (pn->name_string.val[1] == NULL)
|
||||
goto failed;
|
||||
|
||||
return 0;
|
||||
|
||||
failed:
|
||||
free_PrincipalName(pn);
|
||||
|
||||
pn->name_type = KRB5_NT_UNKNOWN;
|
||||
pn->name_string.len = 0;
|
||||
pn->name_string.val = NULL;
|
||||
|
||||
return ENOMEM;
|
||||
}
|
||||
|
||||
static void
|
||||
|
Reference in New Issue
Block a user