From 9e8f85e24b971122f22f20e528e6d073db515634 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Wed, 16 Oct 2013 15:25:27 +0200 Subject: heimdal: Fix sss_krb5_get_init_creds_opt_set_canonicalize Heimdal and MIT Kerberos have a different number of arguments for that function. Add a configure compile check and use the appropriate form. --- src/providers/krb5/krb5_child.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/providers/krb5/krb5_child.c') diff --git a/src/providers/krb5/krb5_child.c b/src/providers/krb5/krb5_child.c index 1d442f16..073c50e4 100644 --- a/src/providers/krb5/krb5_child.c +++ b/src/providers/krb5/krb5_child.c @@ -77,7 +77,7 @@ static krb5_error_code get_changepw_options(krb5_context ctx, return kerr; } - sss_krb5_get_init_creds_opt_set_canonicalize(options, 0); + sss_krb5_get_init_creds_opt_set_canonicalize(ctx, options, 0); krb5_get_init_creds_opt_set_forwardable(options, 0); krb5_get_init_creds_opt_set_proxiable(options, 0); krb5_get_init_creds_opt_set_renew_life(options, 0); @@ -844,7 +844,8 @@ done: } -static void krb5_set_canonicalize(krb5_get_init_creds_opt *opts) +static void krb5_set_canonicalize(krb5_context ctx, + krb5_get_init_creds_opt *opts) { int canonicalize = 0; char *tmp_str; @@ -855,7 +856,7 @@ static void krb5_set_canonicalize(krb5_get_init_creds_opt *opts) } DEBUG(SSSDBG_CONF_SETTINGS, ("%s is set to [%s]\n", SSSD_KRB5_CANONICALIZE, tmp_str ? tmp_str : "not set")); - sss_krb5_get_init_creds_opt_set_canonicalize(opts, canonicalize); + sss_krb5_get_init_creds_opt_set_canonicalize(ctx, opts, canonicalize); } static krb5_error_code get_and_save_tgt_with_keytab(krb5_context ctx, @@ -873,7 +874,7 @@ static krb5_error_code get_and_save_tgt_with_keytab(krb5_context ctx, krb5_get_init_creds_opt_set_address_list(&options, NULL); krb5_get_init_creds_opt_set_forwardable(&options, 0); krb5_get_init_creds_opt_set_proxiable(&options, 0); - krb5_set_canonicalize(&options); + krb5_set_canonicalize(ctx, &options); kerr = krb5_get_init_creds_keytab(ctx, &creds, princ, keytab, 0, NULL, &options); @@ -1904,7 +1905,7 @@ static int k5c_setup(struct krb5_req *kr, uint32_t offline) } if (!offline) { - krb5_set_canonicalize(kr->options); + krb5_set_canonicalize(kr->ctx, kr->options); use_fast_str = getenv(SSSD_KRB5_USE_FAST); if (use_fast_str == NULL || strcasecmp(use_fast_str, "never") == 0) { -- cgit