summaryrefslogtreecommitdiffstats
path: root/sys/kgssapi
diff options
context:
space:
mode:
authorrmacklem <rmacklem@FreeBSD.org>2009-06-14 17:33:46 +0000
committerrmacklem <rmacklem@FreeBSD.org>2009-06-14 17:33:46 +0000
commit6a33730340278c95cdbb912bf9ccdc3a88afb327 (patch)
treeac597fd71311762edcd7f0ccaa3db27f07785727 /sys/kgssapi
parent56983733aae4f7a2c06cbf59c81da67cde90790f (diff)
downloadFreeBSD-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)
Diffstat (limited to 'sys/kgssapi')
-rw-r--r--sys/kgssapi/krb5/krb5_mech.c26
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;
OpenPOWER on IntegriCloud