403b09
From 843d21620c118f283f53db77b1114d15d26dc176 Mon Sep 17 00:00:00 2001
403b09
From: Martin Babinsky <mbabinsk@redhat.com>
403b09
Date: Wed, 20 Jul 2016 15:46:22 +0200
403b09
Subject: [PATCH] harden the check for trust namespace overlap in new
403b09
 principals
403b09
403b09
This check must handle the possibility of optional attributes
403b09
(ipantadditionalsuffixes and ipantflatname) missing in the trusted domain
403b09
entry.
403b09
403b09
https://fedorahosted.org/freeipa/ticket/6099
403b09
403b09
Reviewed-By: David Kupka <dkupka@redhat.com>
403b09
---
403b09
 ipalib/util.py | 10 +++++++---
403b09
 1 file changed, 7 insertions(+), 3 deletions(-)
403b09
403b09
diff --git a/ipalib/util.py b/ipalib/util.py
403b09
index d101514cad4f35fd9a09d84b549ffa86de432f70..e0fc178c4af2056d04ad88a3923daa7d127fe307 100644
403b09
--- a/ipalib/util.py
403b09
+++ b/ipalib/util.py
403b09
@@ -968,11 +968,15 @@ def check_principal_realm_in_trust_namespace(api_instance, *keys):
403b09
     trust_suffix_namespace = set()
403b09
 
403b09
     for obj in trust_objects:
403b09
-        trust_suffix_namespace.update(
403b09
-            set(upn.lower() for upn in obj['ipantadditionalsuffixes']))
403b09
+        nt_suffixes = obj.get('ipantadditionalsuffixes', [])
403b09
 
403b09
         trust_suffix_namespace.update(
403b09
-            set((obj['cn'][0].lower(), obj['ipantflatname'][0].lower())))
403b09
+            set(upn.lower() for upn in nt_suffixes))
403b09
+
403b09
+        if 'ipantflatname' in obj:
403b09
+            trust_suffix_namespace.add(obj['ipantflatname'][0].lower())
403b09
+
403b09
+        trust_suffix_namespace.add(obj['cn'][0].lower())
403b09
 
403b09
     for principal in keys[-1]:
403b09
         realm = principal.realm
403b09
-- 
403b09
2.7.4
403b09