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
|
krb5_error_code
|
||||||
_kdc_make_anonymous_principalname (PrincipalName *pn)
|
_kdc_make_anonymous_principalname (PrincipalName *pn)
|
||||||
{
|
{
|
||||||
pn->name_type = KRB5_NT_PRINCIPAL;
|
pn->name_type = KRB5_NT_WELLKNOWN;
|
||||||
pn->name_string.len = 1;
|
pn->name_string.len = 2;
|
||||||
pn->name_string.val = malloc(sizeof(*pn->name_string.val));
|
pn->name_string.val = calloc(2, sizeof(*pn->name_string.val));
|
||||||
if (pn->name_string.val == NULL)
|
if (pn->name_string.val == NULL)
|
||||||
return ENOMEM;
|
goto failed;
|
||||||
pn->name_string.val[0] = strdup("anonymous");
|
|
||||||
if (pn->name_string.val[0] == NULL) {
|
pn->name_string.val[0] = strdup(KRB5_WELLKNOWN_NAME);
|
||||||
free(pn->name_string.val);
|
if (pn->name_string.val[0] == NULL)
|
||||||
pn->name_string.val = NULL;
|
goto failed;
|
||||||
return ENOMEM;
|
|
||||||
}
|
pn->name_string.val[1] = strdup(KRB5_ANON_NAME);
|
||||||
|
if (pn->name_string.val[1] == NULL)
|
||||||
|
goto failed;
|
||||||
|
|
||||||
return 0;
|
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
|
static void
|
||||||
|
Reference in New Issue
Block a user