summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Bokovoy <abokovoy@redhat.com>2014-02-25 20:53:49 +0200
committerPetr Viktorin <pviktori@redhat.com>2014-02-26 14:19:51 +0100
commitc771ba23a88ef6869499f53d172f2282be19dd4d (patch)
tree2a1c051473918e5374e5d96f2f7f4cabfad6b4d6
parenta5ccd6e3074d1e63fcdc1ebc6f72a1522656f68d (diff)
downloadfreeipa-c771ba23a88ef6869499f53d172f2282be19dd4d.tar.gz
freeipa-c771ba23a88ef6869499f53d172f2282be19dd4d.tar.xz
freeipa-c771ba23a88ef6869499f53d172f2282be19dd4d.zip
ipa-kdb: make sure we don't produce MS-PAC in case of authdata flag cleared by admin
When admin clears authdata flag for the service principal, KDC will pass NULL client pointer (service proxy) to the DAL driver. Make sure we bail out correctly. Reviewed-By: Tomáš Babej <tbabej@redhat.com> Reviewed-By: Simo Sorce <ssorce@redhat.com>
-rw-r--r--daemons/ipa-kdb/ipa_kdb_mspac.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/daemons/ipa-kdb/ipa_kdb_mspac.c b/daemons/ipa-kdb/ipa_kdb_mspac.c
index 2a0480fff..9137cd5ad 100644
--- a/daemons/ipa-kdb/ipa_kdb_mspac.c
+++ b/daemons/ipa-kdb/ipa_kdb_mspac.c
@@ -1985,6 +1985,14 @@ krb5_error_code ipadb_sign_authdata(krb5_context context,
int result;
krb5_db_entry *client_entry = NULL;
+
+ /* When client is NULL, authdata flag on the service principal was cleared
+ * by an admin. We don't generate MS-PAC in this case */
+ if (client == NULL) {
+ *signed_auth_data = NULL;
+ return 0;
+ }
+
/* When using s4u2proxy client_princ actually refers to the proxied user
* while client->princ to the proxy service asking for the TGS on behalf
* of the proxied user. So always use client_princ in preference */