summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2012-05-09 14:50:35 -0400
committerGreg Hudson <ghudson@mit.edu>2012-08-03 15:56:25 -0400
commit0b524beab7e3601bd38d6af8777a16c3c98d807c (patch)
tree55700927de7e04d961c850f6a2348736367e82f2
parent2d5668ba807359307fea7b17c9ad05a516538f5f (diff)
downloadkrb5-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.c2
-rw-r--r--src/lib/gssapi/mechglue/g_init_sec_context.c2
-rw-r--r--src/lib/gssapi/mechglue/g_unwrap_aead.c2
-rw-r--r--src/lib/gssapi/mechglue/g_wrap_aead.c2
-rw-r--r--src/lib/gssapi/mechglue/mglueP.h4
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;