diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2009-06-14 17:33:46 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2009-06-14 17:33:46 +0000 |
commit | 6a33730340278c95cdbb912bf9ccdc3a88afb327 (patch) | |
tree | ac597fd71311762edcd7f0ccaa3db27f07785727 | |
parent | 56983733aae4f7a2c06cbf59c81da67cde90790f (diff) | |
download | FreeBSD-src-6a33730340278c95cdbb912bf9ccdc3a88afb327.zip FreeBSD-src-6a33730340278c95cdbb912bf9ccdc3a88afb327.tar.gz |
When the KOBJMETHOD() macro was updated, it resulted in the
compiler doing argument type checking. Since the prototypes in
kgss_if.h used the generic gss_ctx_id_t for the context argument,
but the functions in sys/kgssapi/krb5/krb5_mech.c used the
KerberosV specific context argument, the file would no longer build.
This patch fixes it so it will build by replacing the argument with
a gss_ctx_id_t one and setting a local "struct krb5_context *" variable
to it for use by the function.
Reviewed by: dfr
Approved by: kib (mentor)
-rw-r--r-- | sys/kgssapi/krb5/krb5_mech.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/sys/kgssapi/krb5/krb5_mech.c b/sys/kgssapi/krb5/krb5_mech.c index 2a1c0b6..798a80d 100644 --- a/sys/kgssapi/krb5/krb5_mech.c +++ b/sys/kgssapi/krb5/krb5_mech.c @@ -393,17 +393,19 @@ get_keys(struct krb5_context *kc) } static void -krb5_init(struct krb5_context *kc) +krb5_init(gss_ctx_id_t ctx) { + struct krb5_context *kc = (struct krb5_context *)ctx; mtx_init(&kc->kc_lock, "krb5 gss lock", NULL, MTX_DEF); } static OM_uint32 -krb5_import(struct krb5_context *kc, +krb5_import(gss_ctx_id_t ctx, enum sec_context_format format, const gss_buffer_t context_token) { + struct krb5_context *kc = (struct krb5_context *)ctx; OM_uint32 res; const uint8_t *p = (const uint8_t *) context_token->value; size_t len = context_token->length; @@ -489,8 +491,9 @@ krb5_import(struct krb5_context *kc, } static void -krb5_delete(struct krb5_context *kc, gss_buffer_t output_token) +krb5_delete(gss_ctx_id_t ctx, gss_buffer_t output_token) { + struct krb5_context *kc = (struct krb5_context *)ctx; delete_address(&kc->kc_local_address); delete_address(&kc->kc_remote_address); @@ -525,7 +528,7 @@ krb5_delete(struct krb5_context *kc, gss_buffer_t output_token) } static gss_OID -krb5_mech_type(struct krb5_context *kc) +krb5_mech_type(gss_ctx_id_t ctx) { return (&krb5_mech_oid); @@ -1002,9 +1005,10 @@ krb5_get_mic_new(struct krb5_context *kc, struct mbuf *m, } static OM_uint32 -krb5_get_mic(struct krb5_context *kc, OM_uint32 *minor_status, +krb5_get_mic(gss_ctx_id_t ctx, OM_uint32 *minor_status, gss_qop_t qop_req, struct mbuf *m, struct mbuf **micp) { + struct krb5_context *kc = (struct krb5_context *)ctx; *minor_status = 0; @@ -1211,9 +1215,10 @@ krb5_verify_mic_new(struct krb5_context *kc, struct mbuf *m, struct mbuf *mic) } static OM_uint32 -krb5_verify_mic(struct krb5_context *kc, OM_uint32 *minor_status, +krb5_verify_mic(gss_ctx_id_t ctx, OM_uint32 *minor_status, struct mbuf *m, struct mbuf *mic, gss_qop_t *qop_state) { + struct krb5_context *kc = (struct krb5_context *)ctx; *minor_status = 0; if (qop_state) @@ -1536,10 +1541,11 @@ krb5_wrap_new(struct krb5_context *kc, int conf_req_flag, } static OM_uint32 -krb5_wrap(struct krb5_context *kc, OM_uint32 *minor_status, +krb5_wrap(gss_ctx_id_t ctx, OM_uint32 *minor_status, int conf_req_flag, gss_qop_t qop_req, struct mbuf **mp, int *conf_state) { + struct krb5_context *kc = (struct krb5_context *)ctx; *minor_status = 0; if (conf_state) @@ -1946,9 +1952,10 @@ krb5_unwrap_new(struct krb5_context *kc, struct mbuf **mp, int *conf_state) } static OM_uint32 -krb5_unwrap(struct krb5_context *kc, OM_uint32 *minor_status, +krb5_unwrap(gss_ctx_id_t ctx, OM_uint32 *minor_status, struct mbuf **mp, int *conf_state, gss_qop_t *qop_state) { + struct krb5_context *kc = (struct krb5_context *)ctx; OM_uint32 maj_stat; *minor_status = 0; @@ -1991,10 +1998,11 @@ krb5_unwrap(struct krb5_context *kc, OM_uint32 *minor_status, } static OM_uint32 -krb5_wrap_size_limit(struct krb5_context *kc, OM_uint32 *minor_status, +krb5_wrap_size_limit(gss_ctx_id_t ctx, OM_uint32 *minor_status, int conf_req_flag, gss_qop_t qop_req, OM_uint32 req_output_size, OM_uint32 *max_input_size) { + struct krb5_context *kc = (struct krb5_context *)ctx; const struct krb5_encryption_class *ec; OM_uint32 overhead; |