From 756d61724e28663f9e8a4d30c01c169f66c739c0 Mon Sep 17 00:00:00 2001 From: Jr Aquino Date: Thu, 12 May 2011 14:59:22 -0700 Subject: Return copy of config from ipa_get_config() 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 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ipaserver/plugins/ldap2.py') diff --git a/ipaserver/plugins/ldap2.py b/ipaserver/plugins/ldap2.py index 48629c0b4..58a9ab4f1 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): -- cgit