From: Andreas Schneider Date: Tue, 30 Aug 2016 10:38:46 +0000 (+0200) Subject: s3-libads: Support for MIT Kerberos ntstatus from init_creds X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=9d4f1b4d3119f0c655eff3619e675423ad8c21d8;p=metze%2Fsamba%2Fwip.git s3-libads: Support for MIT Kerberos ntstatus from init_creds Signed-off-by: Andreas Schneider Reviewed-by: Andrew Bartlett --- diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c index 99028f8959be..1203153a3bb1 100644 --- a/source3/libads/kerberos.c +++ b/source3/libads/kerberos.c @@ -203,12 +203,14 @@ static bool smb_krb5_get_ntstatus_from_init_creds(krb5_context ctx, krb5_get_init_creds_opt *opt, NTSTATUS *nt_status) { -#ifdef HAVE_E_DATA_POINTER_IN_KRB5_ERROR - /* HEIMDAL */ - krb5_init_creds_context icc; krb5_error_code code; +#ifdef HAVE_E_DATA_POINTER_IN_KRB5_ERROR + /* HEIMDAL */ krb5_error error; +#else + krb5_error *error = NULL; +#endif bool ok; code = krb5_init_creds_init(ctx, @@ -234,14 +236,17 @@ static bool smb_krb5_get_ntstatus_from_init_creds(krb5_context ctx, } krb5_init_creds_free(ctx, icc); +#ifdef HAVE_E_DATA_POINTER_IN_KRB5_ERROR ok = smb_krb5_get_ntstatus_from_krb5_error(&error, nt_status); krb5_free_error_contents(ctx, &error); - - return ok; #else - return false; + ok = smb_krb5_get_ntstatus_from_krb5_error(error, nt_status); + + krb5_free_error(ctx, error); #endif + + return ok; } /*