--- samba-3.0.21a/source/libads/kerberos_verify.c 2005-12-03 06:21:50.000000000 +1100 +++ kerberos_verify.c 2006-01-18 19:06:06.258243530 +1100 @@ -43,7 +43,7 @@ { krb5_error_code ret = 0; BOOL auth_ok = False; - krb5_keytab keytab = NULL; + krb5_keytab keytab = NULL, keytab2 = NULL; krb5_kt_cursor kt_cursor; krb5_keytab_entry kt_entry; char *valid_princ_formats[7] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL }; @@ -73,6 +73,9 @@ ZERO_STRUCT(kt_cursor); ret = krb5_kt_default(context, &keytab); + if (!ret) { + ret = krb5_kt_default(context, &keytab2); + } if (ret) { DEBUG(1, ("ads_keytab_verify_ticket: krb5_kt_default failed (%s)\n", error_message(ret))); goto out; @@ -104,7 +107,7 @@ *pp_tkt = NULL; ret = krb5_rd_req_return_keyblock_from_keytab(context, &auth_context, p_packet, - kt_entry.principal, keytab, + kt_entry.principal, keytab2, NULL, pp_tkt, keyblock); if (ret) { @@ -172,6 +175,9 @@ if (keytab) { krb5_kt_close(context, keytab); } + if (keytab2) { + krb5_kt_close(context, keytab2); + } return auth_ok; }