Revamp name canonicalization code
This commit is contained in:
@@ -399,7 +399,7 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_acquire_cred_ext
|
||||
HEIMDAL_MUTEX_init(&handle->cred_id_mutex);
|
||||
|
||||
if (desired_name != GSS_C_NO_NAME) {
|
||||
ret = _gsskrb5_canon_name(minor_status, context, NULL,
|
||||
ret = _gsskrb5_canon_name(minor_status, context,
|
||||
desired_name, &handle->principal);
|
||||
if (ret) {
|
||||
HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex);
|
||||
|
@@ -48,7 +48,7 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_canonicalize_name (
|
||||
|
||||
GSSAPI_KRB5_INIT (&context);
|
||||
|
||||
ret = _gsskrb5_canon_name(minor_status, context, NULL, input_name, &name);
|
||||
ret = _gsskrb5_canon_name(minor_status, context, input_name, &name);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@@ -83,7 +83,6 @@ import_krb5_name (OM_uint32 *minor_status,
|
||||
|
||||
OM_uint32
|
||||
_gsskrb5_canon_name(OM_uint32 *minor_status, krb5_context context,
|
||||
krb5_const_principal sourcename,
|
||||
gss_const_name_t targetname, krb5_principal *out)
|
||||
{
|
||||
krb5_const_principal p = (krb5_const_principal)targetname;
|
||||
@@ -121,10 +120,10 @@ _gsskrb5_canon_name(OM_uint32 *minor_status, krb5_context context,
|
||||
|
||||
|
||||
static OM_uint32
|
||||
import_hostbased_name (OM_uint32 *minor_status,
|
||||
krb5_context context,
|
||||
const gss_buffer_t input_name_buffer,
|
||||
gss_name_t *output_name)
|
||||
import_hostbased_name(OM_uint32 *minor_status,
|
||||
krb5_context context,
|
||||
const gss_buffer_t input_name_buffer,
|
||||
gss_name_t *output_name)
|
||||
{
|
||||
krb5_principal princ = NULL;
|
||||
krb5_error_code kerr;
|
||||
@@ -146,7 +145,7 @@ import_hostbased_name (OM_uint32 *minor_status,
|
||||
host = p + 1;
|
||||
}
|
||||
|
||||
kerr = krb5_make_principal(context, &princ, NULL, tmp, host, NULL);
|
||||
kerr = krb5_make_principal(context, &princ, "", tmp, host, NULL);
|
||||
free (tmp);
|
||||
*minor_status = kerr;
|
||||
if (kerr == KRB5_PARSE_ILLCHAR || kerr == KRB5_PARSE_MALFORMED)
|
||||
@@ -154,7 +153,7 @@ import_hostbased_name (OM_uint32 *minor_status,
|
||||
else if (kerr)
|
||||
return GSS_S_FAILURE;
|
||||
|
||||
krb5_principal_set_type(context, princ, KRB5_NT_SRV_HST_NEEDS_CANON);
|
||||
krb5_principal_set_type(context, princ, KRB5_NT_SRV_HST);
|
||||
*output_name = (gss_name_t)princ;
|
||||
|
||||
return 0;
|
||||
|
@@ -224,8 +224,8 @@ gsskrb5_get_creds(
|
||||
ctx->kcred = NULL;
|
||||
}
|
||||
|
||||
ret = _gsskrb5_canon_name(minor_status, context, ctx->source,
|
||||
target_name, &ctx->target);
|
||||
ret = _gsskrb5_canon_name(minor_status, context, target_name,
|
||||
&ctx->target);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
Reference in New Issue
Block a user