diff options
author | Simo Sorce <simo@redhat.com> | 2012-05-09 14:50:35 -0400 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2012-08-03 15:56:25 -0400 |
commit | 0b524beab7e3601bd38d6af8777a16c3c98d807c (patch) | |
tree | 55700927de7e04d961c850f6a2348736367e82f2 | |
parent | 2d5668ba807359307fea7b17c9ad05a516538f5f (diff) | |
download | krb5-0b524beab7e3601bd38d6af8777a16c3c98d807c.tar.gz krb5-0b524beab7e3601bd38d6af8777a16c3c98d807c.tar.xz krb5-0b524beab7e3601bd38d6af8777a16c3c98d807c.zip |
Make gss_ctx_id_t truly opaque
This allows us to still use it for type safety in the APIs while at
the same time prevent code from trying to dereference internal_ctx_id
by mistake.
-rw-r--r-- | src/lib/gssapi/mechglue/g_imp_sec_context.c | 2 | ||||
-rw-r--r-- | src/lib/gssapi/mechglue/g_init_sec_context.c | 2 | ||||
-rw-r--r-- | src/lib/gssapi/mechglue/g_unwrap_aead.c | 2 | ||||
-rw-r--r-- | src/lib/gssapi/mechglue/g_wrap_aead.c | 2 | ||||
-rw-r--r-- | src/lib/gssapi/mechglue/mglueP.h | 4 |
5 files changed, 6 insertions, 6 deletions
diff --git a/src/lib/gssapi/mechglue/g_imp_sec_context.c b/src/lib/gssapi/mechglue/g_imp_sec_context.c index 7679c92de..45ba9d629 100644 --- a/src/lib/gssapi/mechglue/g_imp_sec_context.c +++ b/src/lib/gssapi/mechglue/g_imp_sec_context.c @@ -148,7 +148,7 @@ gss_ctx_id_t * context_handle; if (status == GSS_S_COMPLETE) { ctx->loopback = ctx; - *context_handle = ctx; + *context_handle = (gss_ctx_id_t)ctx; return (GSS_S_COMPLETE); } map_error(minor_status, mech); diff --git a/src/lib/gssapi/mechglue/g_init_sec_context.c b/src/lib/gssapi/mechglue/g_init_sec_context.c index 21bc345e6..5afea2d94 100644 --- a/src/lib/gssapi/mechglue/g_init_sec_context.c +++ b/src/lib/gssapi/mechglue/g_init_sec_context.c @@ -194,7 +194,7 @@ OM_uint32 * time_rec; /* copy the supplied context handle */ union_ctx_id->internal_ctx_id = GSS_C_NO_CONTEXT; } else - union_ctx_id = *context_handle; + union_ctx_id = (gss_union_ctx_id_t)*context_handle; /* * get the appropriate cred handle from the union cred struct. diff --git a/src/lib/gssapi/mechglue/g_unwrap_aead.c b/src/lib/gssapi/mechglue/g_unwrap_aead.c index 8be6d6ab1..e78bff2d3 100644 --- a/src/lib/gssapi/mechglue/g_unwrap_aead.c +++ b/src/lib/gssapi/mechglue/g_unwrap_aead.c @@ -191,7 +191,7 @@ gss_qop_t *qop_state; if (!mech) return (GSS_S_BAD_MECH); - return gssint_unwrap_aead(mech, minor_status, context_handle, + return gssint_unwrap_aead(mech, minor_status, ctx, input_message_buffer, input_assoc_buffer, output_payload_buffer, conf_state, qop_state); } diff --git a/src/lib/gssapi/mechglue/g_wrap_aead.c b/src/lib/gssapi/mechglue/g_wrap_aead.c index ca1ef122e..96cdf3ce6 100644 --- a/src/lib/gssapi/mechglue/g_wrap_aead.c +++ b/src/lib/gssapi/mechglue/g_wrap_aead.c @@ -260,7 +260,7 @@ gss_buffer_t output_message_buffer; if (!mech) return (GSS_S_BAD_MECH); - return gssint_wrap_aead(mech, minor_status, context_handle, + return gssint_wrap_aead(mech, minor_status, ctx, conf_req_flag, qop_req, input_assoc_buffer, input_payload_buffer, conf_state, output_message_buffer); diff --git a/src/lib/gssapi/mechglue/mglueP.h b/src/lib/gssapi/mechglue/mglueP.h index efbb37023..9e87b39bc 100644 --- a/src/lib/gssapi/mechglue/mglueP.h +++ b/src/lib/gssapi/mechglue/mglueP.h @@ -23,8 +23,8 @@ do { \ /* * Array of context IDs typed by mechanism OID */ -typedef struct gss_ctx_id_struct { - struct gss_ctx_id_struct *loopback; +typedef struct gss_union_ctx_id_struct { + struct gss_union_ctx_id_struct *loopback; gss_OID mech_type; gss_ctx_id_t internal_ctx_id; } gss_union_ctx_id_desc, *gss_union_ctx_id_t; |