aboutsummaryrefslogtreecommitdiff
path: root/lib/libgssapi/gss_accept_sec_context.c
diff options
context:
space:
mode:
authorDoug Rabson <dfr@FreeBSD.org>2007-06-30 07:47:45 +0000
committerDoug Rabson <dfr@FreeBSD.org>2007-06-30 07:47:45 +0000
commit22a25490aba4355c2962110dda9d9d050359a597 (patch)
tree43e155259c3b6dda9ce39b2e454a8e8ef1282f3c /lib/libgssapi/gss_accept_sec_context.c
parent4b39fdb5e6224658bfe161af1f165128bb55786a (diff)
downloadsrc-22a25490aba4355c2962110dda9d9d050359a597.tar.gz
src-22a25490aba4355c2962110dda9d9d050359a597.zip
Merge fixes back from heimdal.
Approved by: re (kensmith)
Notes
Notes: svn path=/head/; revision=171112
Diffstat (limited to 'lib/libgssapi/gss_accept_sec_context.c')
-rw-r--r--lib/libgssapi/gss_accept_sec_context.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/libgssapi/gss_accept_sec_context.c b/lib/libgssapi/gss_accept_sec_context.c
index d9453cf832c6..269a620219a5 100644
--- a/lib/libgssapi/gss_accept_sec_context.c
+++ b/lib/libgssapi/gss_accept_sec_context.c
@@ -48,7 +48,7 @@ OM_uint32 gss_accept_sec_context(OM_uint32 *minor_status,
OM_uint32 *time_rec,
gss_cred_id_t *delegated_cred_handle)
{
- OM_uint32 major_status;
+ OM_uint32 major_status, mech_ret_flags;
struct _gss_mech_switch *m;
struct _gss_context *ctx = (struct _gss_context *) *context_handle;
struct _gss_cred *cred = (struct _gss_cred *) acceptor_cred_handle;
@@ -165,7 +165,7 @@ OM_uint32 gss_accept_sec_context(OM_uint32 *minor_status,
&src_mn,
mech_type,
output_token,
- ret_flags,
+ &mech_ret_flags,
time_rec,
&delegated_mc);
if (major_status != GSS_S_COMPLETE &&
@@ -187,7 +187,7 @@ OM_uint32 gss_accept_sec_context(OM_uint32 *minor_status,
*src_name = (gss_name_t) name;
}
- if (*ret_flags & GSS_C_DELEG_FLAG) {
+ if (mech_ret_flags & GSS_C_DELEG_FLAG) {
if (!delegated_cred_handle) {
m->gm_release_cred(minor_status, &delegated_mc);
*ret_flags &= ~GSS_C_DELEG_FLAG;
@@ -217,6 +217,8 @@ OM_uint32 gss_accept_sec_context(OM_uint32 *minor_status,
}
}
+ if (ret_flags)
+ *ret_flags = mech_ret_flags;
*context_handle = (gss_ctx_id_t) ctx;
return (major_status);
}