From a0b4b8c4046e2835c401ba4ff2018936004e1b8a Mon Sep 17 00:00:00 2001 From: Jr Aquino Date: Thu, 12 May 2011 14:59:22 -0700 Subject: [PATCH] 27 Make sure ipa_config is read only when caching It was discovered that using the batch plugin it was possible to store duplicate data in parts of the ipa_config during iterations. This was causing a cascading exec failures if any one of the batch executions failed. https://fedorahosted.org/freeipa/ticket/1220 --- ipaserver/plugins/ldap2.py | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ipaserver/plugins/ldap2.py b/ipaserver/plugins/ldap2.py index 48629c0..58a9ab4 100644 --- a/ipaserver/plugins/ldap2.py +++ b/ipaserver/plugins/ldap2.py @@ -639,7 +639,7 @@ class ldap2(CrudBackend, Encoder): cdn = "%s,%s" % (api.Object.config.get_dn(), api.env.basedn) try: config_entry = getattr(context, 'config_entry') - return (cdn, config_entry) + return (cdn, copy.deepcopy(config_entry)) except AttributeError: # Not in our context yet pass @@ -653,7 +653,7 @@ class ldap2(CrudBackend, Encoder): for a in self.config_defaults: if a not in config_entry: config_entry[a] = self.config_defaults[a] - setattr(context, 'config_entry', config_entry) + setattr(context, 'config_entry', copy.deepcopy(config_entry)) return (cdn, config_entry) def get_schema(self): -- 1.7.4.4