gss: remove SPNEGO name wrappers

Wrapping GSS names at the SPNEGO level serves no purpose; remove it and return
mechglue names directly. This required a small change to the NTLM mechanism to
allow NULL names to be passed to its release name function.
This commit is contained in:
Luke Howard
2020-01-02 16:30:42 +11:00
parent e80248ed36
commit ae5c60286a
6 changed files with 30 additions and 215 deletions

View File

@@ -665,16 +665,10 @@ out:
if (ret == GSS_S_COMPLETE) {
if (src_name != NULL && ctx->mech_src_name != NULL) {
spnego_name name;
name = calloc(1, sizeof(*name));
if (name) {
name->mech = ctx->mech_src_name;
ctx->mech_src_name = NULL;
*src_name = (gss_name_t)name;
}
}
if (src_name != NULL && ctx->mech_src_name != GSS_C_NO_NAME)
ret = gss_duplicate_name(minor_status,
ctx->mech_src_name,
src_name);
}
if (mech_type != NULL)
@@ -853,16 +847,10 @@ acceptor_continue
}
if (ret == GSS_S_COMPLETE) {
if (src_name != NULL && ctx->mech_src_name != NULL) {
spnego_name name;
name = calloc(1, sizeof(*name));
if (name) {
name->mech = ctx->mech_src_name;
ctx->mech_src_name = NULL;
*src_name = (gss_name_t)name;
}
}
if (src_name != NULL && ctx->mech_src_name != GSS_C_NO_NAME)
ret = gss_duplicate_name(minor_status,
ctx->mech_src_name,
src_name);
}
if (mech_type != NULL)