(_gss_spnego_inquire_context): make work, based on patch from Ryan Sleevi.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@22604 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -394,28 +394,58 @@ OM_uint32 _gss_spnego_inquire_context (
|
||||
)
|
||||
{
|
||||
gssspnego_ctx ctx;
|
||||
OM_uint32 maj_stat, junk;
|
||||
gss_name_t src_mn, targ_mn;
|
||||
|
||||
*minor_status = 0;
|
||||
|
||||
if (context_handle == GSS_C_NO_CONTEXT) {
|
||||
if (context_handle == GSS_C_NO_CONTEXT)
|
||||
return GSS_S_NO_CONTEXT;
|
||||
}
|
||||
|
||||
ctx = (gssspnego_ctx)context_handle;
|
||||
|
||||
if (ctx->negotiated_ctx_id == GSS_C_NO_CONTEXT) {
|
||||
if (ctx->negotiated_ctx_id == GSS_C_NO_CONTEXT)
|
||||
return GSS_S_NO_CONTEXT;
|
||||
}
|
||||
|
||||
return gss_inquire_context(minor_status,
|
||||
ctx->negotiated_ctx_id,
|
||||
src_name,
|
||||
targ_name,
|
||||
lifetime_rec,
|
||||
mech_type,
|
||||
ctx_flags,
|
||||
locally_initiated,
|
||||
open_context);
|
||||
maj_stat = gss_inquire_context(minor_status,
|
||||
ctx->negotiated_ctx_id,
|
||||
&src_mn,
|
||||
&targ_mn,
|
||||
lifetime_rec,
|
||||
mech_type,
|
||||
ctx_flags,
|
||||
locally_initiated,
|
||||
open_context);
|
||||
if (maj_stat != GSS_S_COMPLETE)
|
||||
return maj_stat;
|
||||
|
||||
if (src_name) {
|
||||
spnego_name name = calloc(1, sizeof(*name));
|
||||
if (name == NULL)
|
||||
goto enomem;
|
||||
name->mech = src_mn;
|
||||
*src_name = (gss_name_t)name;
|
||||
} else
|
||||
gss_release_name(&junk, &src_mn);
|
||||
|
||||
if (targ_name) {
|
||||
spnego_name name = calloc(1, sizeof(*name));
|
||||
if (name == NULL) {
|
||||
gss_release_name(minor_status, src_name);
|
||||
goto enomem;
|
||||
}
|
||||
name->mech = targ_mn;
|
||||
*targ_name = (gss_name_t)name;
|
||||
} else
|
||||
gss_release_name(&junk, &targ_mn);
|
||||
|
||||
return GSS_S_COMPLETE;
|
||||
|
||||
enomem:
|
||||
gss_release_name(&junk, &targ_mn);
|
||||
gss_release_name(&junk, &src_mn);
|
||||
*minor_status = ENOMEM;
|
||||
return GSS_S_FAILURE;
|
||||
}
|
||||
|
||||
OM_uint32 _gss_spnego_wrap_size_limit (
|
||||
|
Reference in New Issue
Block a user