From 9f8700fceead6e7b4947dc86f161e78dabb5d186 Mon Sep 17 00:00:00 2001 From: Robbie Harwood Date: Oct 26 2017 10:46:44 +0000 Subject: ipa-kdb: support KDB DAL version 7.0 krb5-1.16 includes DAL version 7, which changes the signature of audit_as_req to include local and remote address parameters. This patch just enables building against the new DAL version and bumps the minimum in freeipa.spec.in, but doesn't use the new information for anything. Reviewed-By: Tomas Krizek Reviewed-By: Alexander Bokovoy --- diff --git a/daemons/ipa-kdb/ipa_kdb.c b/daemons/ipa-kdb/ipa_kdb.c index c0f1e27..b11153e 100644 --- a/daemons/ipa-kdb/ipa_kdb.c +++ b/daemons/ipa-kdb/ipa_kdb.c @@ -709,7 +709,9 @@ kdb_vftabl kdb_function_table = { }; #endif -#if (KRB5_KDB_DAL_MAJOR_VERSION == 6) && defined(HAVE_KDB_FREEPRINCIPAL_EDATA) +#if ((KRB5_KDB_DAL_MAJOR_VERSION == 6) || \ + (KRB5_KDB_DAL_MAJOR_VERSION == 7)) && \ + defined(HAVE_KDB_FREEPRINCIPAL_EDATA) kdb_vftabl kdb_function_table = { .maj_ver = KRB5_KDB_DAL_MAJOR_VERSION, .min_ver = 1, @@ -742,7 +744,8 @@ kdb_vftabl kdb_function_table = { }; #endif -#if (KRB5_KDB_DAL_MAJOR_VERSION != 5) && (KRB5_KDB_DAL_MAJOR_VERSION != 6) +#if (KRB5_KDB_DAL_MAJOR_VERSION != 5) && \ + (KRB5_KDB_DAL_MAJOR_VERSION != 6) && \ + (KRB5_KDB_DAL_MAJOR_VERSION != 7) #error unsupported DAL major version #endif - diff --git a/daemons/ipa-kdb/ipa_kdb.h b/daemons/ipa-kdb/ipa_kdb.h index 72573a6..be2f457 100644 --- a/daemons/ipa-kdb/ipa_kdb.h +++ b/daemons/ipa-kdb/ipa_kdb.h @@ -326,6 +326,10 @@ krb5_error_code ipadb_check_allowed_to_delegate(krb5_context kcontext, void ipadb_audit_as_req(krb5_context kcontext, krb5_kdc_req *request, +#if (KRB5_KDB_DAL_MAJOR_VERSION == 7) + const krb5_address *local_addr, + const krb5_address *remote_addr, +#endif krb5_db_entry *client, krb5_db_entry *server, krb5_timestamp authtime, diff --git a/daemons/ipa-kdb/ipa_kdb_audit_as.c b/daemons/ipa-kdb/ipa_kdb_audit_as.c index 5f59bf3..c68a67a 100644 --- a/daemons/ipa-kdb/ipa_kdb_audit_as.c +++ b/daemons/ipa-kdb/ipa_kdb_audit_as.c @@ -26,6 +26,10 @@ void ipadb_audit_as_req(krb5_context kcontext, krb5_kdc_req *request, +#if (KRB5_KDB_DAL_MAJOR_VERSION == 7) + const krb5_address *local_addr, + const krb5_address *remote_addr, +#endif krb5_db_entry *client, krb5_db_entry *server, krb5_timestamp authtime, diff --git a/freeipa.spec.in b/freeipa.spec.in index 4eac379..cb71fd7 100644 --- a/freeipa.spec.in +++ b/freeipa.spec.in @@ -86,9 +86,13 @@ BuildRequires: openldap-devel # For KDB DAL version, make explicit dependency so that increase of version # will cause the build to fail due to unsatisfied dependencies. # DAL version change may cause code crash or memory leaks, it is better to fail early. +%if 0%{?fedora} > 27 +BuildRequires: krb5-kdb-version = 7.0 +%else %if 0%{?fedora} > 25 BuildRequires: krb5-kdb-version = 6.1 %endif +%endif BuildRequires: krb5-devel >= %{krb5_version} # 1.27.4: xmlrpc_curl_xportparms.gssapi_delegation BuildRequires: xmlrpc-c-devel >= 1.27.4