summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1997-07-16 02:06:22 +0000
committerTheodore Tso <tytso@mit.edu>1997-07-16 02:06:22 +0000
commita196a36dce9fc571c747e20a90f350822aeb49be (patch)
tree53b82eda2dc3b43716c346accf409782b7d941e7 /src
parentc76c067028376e5211c617392f01efc108e93985 (diff)
downloadkrb5-a196a36dce9fc571c747e20a90f350822aeb49be.tar.gz
krb5-a196a36dce9fc571c747e20a90f350822aeb49be.tar.xz
krb5-a196a36dce9fc571c747e20a90f350822aeb49be.zip
Always copy the mechtype so that delete_sec_context() can safely
release the OID without smashing memory passed in by the application. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10117 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/lib/gssapi/krb5/ChangeLog6
-rw-r--r--src/lib/gssapi/krb5/init_sec_context.c6
2 files changed, 11 insertions, 1 deletions
diff --git a/src/lib/gssapi/krb5/ChangeLog b/src/lib/gssapi/krb5/ChangeLog
index 0c65bf13b..350515897 100644
--- a/src/lib/gssapi/krb5/ChangeLog
+++ b/src/lib/gssapi/krb5/ChangeLog
@@ -1,3 +1,9 @@
+Tue Jul 15 22:05:21 1997 Theodore Y. Ts'o <tytso@mit.edu>
+
+ * init_sec_context.c (krb5_gss_init_sec_context): Always copy the
+ mechtype so that delete_sec_context() can safely release
+ the OID without smashing memory passed in by the application.
+
Mon Jun 30 14:05:51 1997 Kevin L Mitchell <klmitch@mit.edu>
* accept_sec_context.c: added code to return a valid delegated
diff --git a/src/lib/gssapi/krb5/init_sec_context.c b/src/lib/gssapi/krb5/init_sec_context.c
index ac6ffa232..b3992bd7d 100644
--- a/src/lib/gssapi/krb5/init_sec_context.c
+++ b/src/lib/gssapi/krb5/init_sec_context.c
@@ -324,7 +324,11 @@ krb5_gss_init_sec_context(minor_status, claimant_cred_handle,
/* fill in the ctx */
memset(ctx, 0, sizeof(krb5_gss_ctx_id_rec));
- ctx->mech_used = mech_type;
+ if (generic_gss_copy_oid(minor_status, mech_type, &ctx->mech_used)
+ != GSS_S_COMPLETE) {
+ free(ctx);
+ return (GSS_S_FAILURE);
+ }
ctx->auth_context = NULL;
ctx->initiate = 1;
ctx->gss_flags = KG_IMPLFLAGS(req_flags);