mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
r21778: Wrap calls to krb5_get_init_creds_opt_free to handle the different
calling convention in the latest MIT changes. Apparantly Heimdal
is also changing to this calling convention.
(This used to be commit c29c69d2df
)
This commit is contained in:
parent
257d2e0d2a
commit
3adeb42742
@ -3549,6 +3549,26 @@ if test x"$with_ads_support" != x"no"; then
|
||||
[Whether the krb5_ticket structure contains the kvno and enctype])
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK(whether krb5_get_init_creds_opt_free takes a context argument,
|
||||
smb_krb5_creds_opt_free_context,
|
||||
[
|
||||
AC_TRY_COMPILE([
|
||||
#include <krb5.h>],
|
||||
[
|
||||
krb5_context ctx;
|
||||
krb5_get_init_creds_opt *opt = NULL;
|
||||
krb5_get_init_creds_opt_free(ctx, opt);
|
||||
],
|
||||
[smb_krb5_creds_opt_free_context=yes],
|
||||
[smb_krb5_creds_opt_free_context=no]
|
||||
)
|
||||
])
|
||||
|
||||
if test x"$smb_krb5_creds_opt_free_context" = x"yes" ; then
|
||||
AC_DEFINE(KRB5_CREDS_OPT_FREE_REQUIRES_CONTEXT, 1,
|
||||
[Whether krb5_get_init_creds_opt_free takes a context argument])
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK(whether krb5_verify_checksum takes 7 arguments, smb_krb5_verify_checksum, [
|
||||
AC_TRY_COMPILE([
|
||||
#include <krb5.h>],
|
||||
|
@ -1176,8 +1176,11 @@ krb5_error_code nt_status_to_krb5(NTSTATUS nt_status);
|
||||
void smb_krb5_free_error(krb5_context context, krb5_error *krberror);
|
||||
krb5_error_code handle_krberror_packet(krb5_context context,
|
||||
krb5_data *packet);
|
||||
void krb5_get_init_creds_opt_free(krb5_get_init_creds_opt *opt);
|
||||
krb5_error_code krb5_get_init_creds_opt_alloc(krb5_context context, krb5_get_init_creds_opt **opt);
|
||||
|
||||
void smb_krb5_get_init_creds_opt_free(krb5_context context,
|
||||
krb5_get_init_creds_opt *opt);
|
||||
krb5_error_code smb_krb5_get_init_creds_opt_alloc(krb5_context context,
|
||||
krb5_get_init_creds_opt **opt);
|
||||
#endif /* HAVE_KRB5 */
|
||||
|
||||
|
||||
|
@ -140,7 +140,7 @@ int kerberos_kinit_password_ext(const char *principal,
|
||||
if ((code = krb5_get_init_creds_password(ctx, &my_creds, me, CONST_DISCARD(char *,password),
|
||||
kerb_prompter, NULL, 0, NULL, opt)))
|
||||
{
|
||||
krb5_get_init_creds_opt_free(opt);
|
||||
smb_krb5_get_init_creds_opt_free(ctx, opt);
|
||||
smb_krb5_free_addresses(ctx, addr);
|
||||
krb5_cc_close(ctx, cc);
|
||||
krb5_free_principal(ctx, me);
|
||||
@ -148,7 +148,7 @@ int kerberos_kinit_password_ext(const char *principal,
|
||||
return code;
|
||||
}
|
||||
|
||||
krb5_get_init_creds_opt_free(opt);
|
||||
smb_krb5_get_init_creds_opt_free(ctx, opt);
|
||||
|
||||
if ((code = krb5_cc_initialize(ctx, cc, me))) {
|
||||
smb_krb5_free_addresses(ctx, addr);
|
||||
|
@ -1389,9 +1389,14 @@ done:
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifndef HAVE_KRB5_GET_INIT_CREDS_OPT_ALLOC
|
||||
krb5_error_code krb5_get_init_creds_opt_alloc(krb5_context context, krb5_get_init_creds_opt **opt)
|
||||
krb5_error_code smb_krb5_get_init_creds_opt_alloc(krb5_context context,
|
||||
krb5_get_init_creds_opt **opt)
|
||||
{
|
||||
#ifdef HAVE_KRB5_GET_INIT_CREDS_OPT_ALLOC
|
||||
/* Heimdal or modern MIT version */
|
||||
return krb5_get_init_creds_opt_alloc(context, opt);
|
||||
#else
|
||||
/* Historical MIT version */
|
||||
krb5_get_init_creds_opt *my_opt;
|
||||
|
||||
*opt = NULL;
|
||||
@ -1404,16 +1409,28 @@ done:
|
||||
|
||||
*opt = my_opt;
|
||||
return 0;
|
||||
#endif /* HAVE_KRB5_GET_INIT_CREDS_OPT_ALLOC */
|
||||
}
|
||||
|
||||
void smb_krb5_get_init_creds_opt_free(krb5_context context,
|
||||
krb5_get_init_creds_opt *opt)
|
||||
{
|
||||
#ifdef HAVE_KRB5_GET_INIT_CREDS_OPT_FREE
|
||||
|
||||
#ifdef KRB5_CREDS_OPT_FREE_REQUIRES_CONTEXT
|
||||
/* Modern MIT version */
|
||||
krb5_get_init_creds_opt_free(context, opt);
|
||||
#else
|
||||
/* Heimdal version */
|
||||
krb5_get_init_creds_opt_free(opt);
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_KRB5_GET_INIT_CREDS_OPT_FREE
|
||||
void krb5_get_init_creds_opt_free(krb5_get_init_creds_opt *opt)
|
||||
{
|
||||
#else /* HAVE_KRB5_GET_INIT_CREDS_OPT_FREE */
|
||||
/* Historical MIT version */
|
||||
SAFE_FREE(opt);
|
||||
opt = NULL;
|
||||
#endif /* HAVE_KRB5_GET_INIT_CREDS_OPT_FREE */
|
||||
}
|
||||
#endif
|
||||
|
||||
#else /* HAVE_KRB5 */
|
||||
/* this saves a few linking headaches */
|
||||
|
Loading…
Reference in New Issue
Block a user