b01884
From 705e280eafb13b1b55fc0b91001e4721ce79fbdf Mon Sep 17 00:00:00 2001
b01884
From: Thomas Woerner <twoerner@redhat.com>
b01884
Date: Mon, 22 Oct 2018 13:57:11 +0200
b01884
Subject: [PATCH] Fix ressource leak in client/config.c get_config_entry
b01884
b01884
The leak happens due to using strndup to create a temporary string without
b01884
freeing it afterwards.
b01884
b01884
See: https://pagure.io/freeipa/issue/7738
b01884
Signed-off-by: Thomas Woerner <twoerner@redhat.com>
b01884
Reviewed-By: Christian Heimes <cheimes@redhat.com>
b01884
---
b01884
 client/config.c | 3 ++-
b01884
 1 file changed, 2 insertions(+), 1 deletion(-)
b01884
b01884
diff --git a/client/config.c b/client/config.c
b01884
index ecc126ff47..a09564b702 100644
b01884
--- a/client/config.c
b01884
+++ b/client/config.c
b01884
@@ -123,17 +123,18 @@ get_config_entry(char * in_data, const char *section, const char *key)
b01884
             line++;
b01884
             p = strchr(line, ']');
b01884
             if (p) {
b01884
-                tmp = strndup(line, p - line);
b01884
                 if (in_section) {
b01884
                     /* We exited the matching section without a match */
b01884
                     free(data);
b01884
                     return NULL;
b01884
                 }
b01884
+                tmp = strndup(line, p - line);
b01884
                 if (strcmp(section, tmp) == 0) {
b01884
                     free(tmp);
b01884
                     in_section = 1;
b01884
                     continue;
b01884
                 }
b01884
+                free(tmp);
b01884
             }
b01884
         } /* [ */
b01884
 
b01884
From ebb14ed6f57c5504dc2f44339274b108483efd16 Mon Sep 17 00:00:00 2001
b01884
From: Thomas Woerner <twoerner@redhat.com>
b01884
Date: Mon, 22 Oct 2018 15:18:23 +0200
b01884
Subject: [PATCH] Fix ressource leak in
b01884
 daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c ipa_cldap_netlogon
b01884
b01884
The leak happens due to using strndup in a for loop to create a temporary
b01884
string without freeing it in all cases.
b01884
b01884
See: https://pagure.io/freeipa/issue/7738
b01884
Signed-off-by: Thomas Woerner <twoerner@redhat.com>
b01884
Reviewed-By: Christian Heimes <cheimes@redhat.com>
b01884
---
b01884
 daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c | 4 ++++
b01884
 1 file changed, 4 insertions(+)
b01884
b01884
diff --git a/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c b/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c
b01884
index 5863f667ea..460f96cd59 100644
b01884
--- a/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c
b01884
+++ b/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c
b01884
@@ -260,6 +260,10 @@ int ipa_cldap_netlogon(struct ipa_cldap_ctx *ctx,
b01884
             if (req->kvps.pairs[i].value.bv_val[len-1] == '.') {
b01884
                 len--;
b01884
             }
b01884
+            if (domain != NULL) {
b01884
+                free(domain);
b01884
+                domain = NULL;
b01884
+            }
b01884
             domain = strndup(req->kvps.pairs[i].value.bv_val, len);
b01884
             if (!domain) {
b01884
                 ret = ENOMEM;
b01884
From 305150416429b85d46ad4162bac492db303cf9cf Mon Sep 17 00:00:00 2001
b01884
From: Christian Heimes <cheimes@redhat.com>
b01884
Date: Wed, 24 Oct 2018 10:12:39 +0200
b01884
Subject: [PATCH] Fix ipadb_multires resource handling
b01884
b01884
* ipadb_get_pwd_policy() initializes struct ipadb_multires *res to NULL.
b01884
* ipadb_multires_free() supports NULL as no-op.
b01884
* ipadb_multibase_search() consistently frees and NULLs
b01884
  struct ipadb_multires **res on error.
b01884
b01884
See: https://pagure.io/freeipa/issue/7738
b01884
Signed-off-by: Christian Heimes <cheimes@redhat.com>
b01884
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
b01884
---
b01884
 daemons/ipa-kdb/ipa_kdb_common.c    | 13 +++++++++----
b01884
 daemons/ipa-kdb/ipa_kdb_pwdpolicy.c |  2 +-
b01884
 2 files changed, 10 insertions(+), 5 deletions(-)
b01884
b01884
diff --git a/daemons/ipa-kdb/ipa_kdb_common.c b/daemons/ipa-kdb/ipa_kdb_common.c
b01884
index 5995efe6b1..e2592cea3f 100644
b01884
--- a/daemons/ipa-kdb/ipa_kdb_common.c
b01884
+++ b/daemons/ipa-kdb/ipa_kdb_common.c
b01884
@@ -634,10 +634,12 @@ krb5_error_code ipadb_multires_init(LDAP *lcontext, struct ipadb_multires **r)
b01884
 
b01884
 void ipadb_multires_free(struct ipadb_multires *r)
b01884
 {
b01884
-    for (int i = 0; i < r->count; i++) {
b01884
-        ldap_msgfree(r->res[i]);
b01884
+    if (r != NULL) {
b01884
+        for (int i = 0; i < r->count; i++) {
b01884
+            ldap_msgfree(r->res[i]);
b01884
+        }
b01884
+        free(r);
b01884
     }
b01884
-    free(r);
b01884
 }
b01884
 
b01884
 LDAPMessage *ipadb_multires_next_entry(struct ipadb_multires *r)
b01884
@@ -670,8 +672,11 @@ krb5_error_code ipadb_multibase_search(struct ipadb_context *ipactx,
b01884
     if (ret != 0) return ret;
b01884
 
b01884
     ret = ipadb_check_connection(ipactx);
b01884
-    if (ret != 0)
b01884
+    if (ret != 0) {
b01884
+        ipadb_multires_free(*res);
b01884
+        *res = NULL;
b01884
         return ipadb_simple_ldap_to_kerr(ret);
b01884
+    }
b01884
 
b01884
     for (int b = 0; basedns[b]; b++) {
b01884
         LDAPMessage *r;
b01884
diff --git a/daemons/ipa-kdb/ipa_kdb_pwdpolicy.c b/daemons/ipa-kdb/ipa_kdb_pwdpolicy.c
b01884
index 1ec584612b..10f128700b 100644
b01884
--- a/daemons/ipa-kdb/ipa_kdb_pwdpolicy.c
b01884
+++ b/daemons/ipa-kdb/ipa_kdb_pwdpolicy.c
b01884
@@ -141,7 +141,7 @@ krb5_error_code ipadb_get_pwd_policy(krb5_context kcontext, char *name,
b01884
     char *esc_name = NULL;
b01884
     char *src_filter = NULL;
b01884
     krb5_error_code kerr;
b01884
-    struct ipadb_multires *res;
b01884
+    struct ipadb_multires *res = NULL;
b01884
     LDAPMessage *lentry;
b01884
     osa_policy_ent_t pentry = NULL;
b01884
     uint32_t result;
b01884
From 4ca3120b9a09ad48866446af29b38ca7c005b0d0 Mon Sep 17 00:00:00 2001
b01884
From: Christian Heimes <cheimes@redhat.com>
b01884
Date: Wed, 24 Oct 2018 10:19:14 +0200
b01884
Subject: [PATCH] Don't abuse strncpy() length limitation
b01884
MIME-Version: 1.0
b01884
Content-Type: text/plain; charset=UTF-8
b01884
Content-Transfer-Encoding: 8bit
b01884
b01884
On two occasions C code abused strncpy()'s length limitation to copy a
b01884
string of known length without the trailing NULL byte. Recent GCC is
b01884
raising the compiler warning:
b01884
b01884
  warning: ‘strncpy’ output truncated before terminating nul copying as
b01884
  many bytes from a string as its length [-Wstringop-truncation]
b01884
b01884
Use memcpy() instead if strncpy() to copy data of known size.
b01884
b01884
See: https://pagure.io/freeipa/issue/7738
b01884
Signed-off-by: Christian Heimes <cheimes@redhat.com>
b01884
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
b01884
---
b01884
 daemons/ipa-kdb/ipa_kdb.c                        | 2 +-
b01884
 daemons/ipa-slapi-plugins/ipa-pwd-extop/common.c | 2 +-
b01884
 2 files changed, 2 insertions(+), 2 deletions(-)
b01884
b01884
diff --git a/daemons/ipa-kdb/ipa_kdb.c b/daemons/ipa-kdb/ipa_kdb.c
b01884
index 00c732624b..20967316ed 100644
b01884
--- a/daemons/ipa-kdb/ipa_kdb.c
b01884
+++ b/daemons/ipa-kdb/ipa_kdb.c
b01884
@@ -110,7 +110,7 @@ static char *ipadb_realm_to_ldapi_uri(char *realm)
b01884
     /* copy path and escape '/' to '%2f' */
b01884
     for (q = LDAPIDIR; *q; q++) {
b01884
         if (*q == '/') {
b01884
-            strncpy(p, "%2f", 3);
b01884
+            memcpy(p, "%2f", 3);
b01884
             p += 3;
b01884
         } else {
b01884
             *p = *q;
b01884
diff --git a/daemons/ipa-slapi-plugins/ipa-pwd-extop/common.c b/daemons/ipa-slapi-plugins/ipa-pwd-extop/common.c
b01884
index db7183bf2b..61b46904ab 100644
b01884
--- a/daemons/ipa-slapi-plugins/ipa-pwd-extop/common.c
b01884
+++ b/daemons/ipa-slapi-plugins/ipa-pwd-extop/common.c
b01884
@@ -1003,7 +1003,7 @@ int ipapwd_set_extradata(const char *dn,
b01884
     xdata[5] = (unixtime & 0xff000000) >> 24;
b01884
 
b01884
     /* append the principal name */
b01884
-    strncpy(&xdata[6], principal, p_len);
b01884
+    memcpy(&xdata[6], principal, p_len);
b01884
 
b01884
     xdata[xd_len -1] = 0;
b01884
 
b01884
From a06fb8d0f7b7c6aba942186b93d87823398f5337 Mon Sep 17 00:00:00 2001
b01884
From: Christian Heimes <cheimes@redhat.com>
b01884
Date: Thu, 1 Nov 2018 11:41:29 +0100
b01884
Subject: [PATCH] has_krbprincipalkey: avoid double free
b01884
b01884
Set keys to NULL after free rder to avoid potential double free.
b01884
b01884
See: https://pagure.io/freeipa/issue/7738
b01884
Signed-off-by: Christian Heimes <cheimes@redhat.com>
b01884
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
b01884
---
b01884
 daemons/ipa-slapi-plugins/ipa-pwd-extop/prepost.c | 6 +++++-
b01884
 1 file changed, 5 insertions(+), 1 deletion(-)
b01884
b01884
diff --git a/daemons/ipa-slapi-plugins/ipa-pwd-extop/prepost.c b/daemons/ipa-slapi-plugins/ipa-pwd-extop/prepost.c
b01884
index 209d596255..3c3c7e8845 100644
b01884
--- a/daemons/ipa-slapi-plugins/ipa-pwd-extop/prepost.c
b01884
+++ b/daemons/ipa-slapi-plugins/ipa-pwd-extop/prepost.c
b01884
@@ -176,7 +176,11 @@ static bool has_krbprincipalkey(Slapi_Entry *entry) {
b01884
 
b01884
             if (rc || (num_keys <= 0)) {
b01884
                 /* this one is not valid, ignore it */
b01884
-                if (keys) ipa_krb5_free_key_data(keys, num_keys);
b01884
+                if (keys) {
b01884
+                    ipa_krb5_free_key_data(keys, num_keys);
b01884
+                    keys = NULL;
b01884
+                    num_keys = 0;
b01884
+                }
b01884
             } else {
b01884
                 /* It exists at least this one that is valid, no need to continue */
b01884
                 if (keys) ipa_krb5_free_key_data(keys, num_keys);
b01884
From 2884ab69babfd7d40f951ba814234ce4763b0cd8 Mon Sep 17 00:00:00 2001
b01884
From: Christian Heimes <cheimes@redhat.com>
b01884
Date: Thu, 1 Nov 2018 11:41:41 +0100
b01884
Subject: [PATCH] ipadb_mspac_get_trusted_domains: NULL ptr deref
b01884
b01884
Fix potential NULL pointer deref in ipadb_mspac_get_trusted_domains().
b01884
In theory, dn could be empty and rdn NULL. The man page for ldap_str2dn()
b01884
does not guarantee that it returns a non-empty result.
b01884
b01884
See: https://pagure.io/freeipa/issue/7738
b01884
Signed-off-by: Christian Heimes <cheimes@redhat.com>
b01884
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
b01884
---
b01884
 daemons/ipa-kdb/ipa_kdb_mspac.c | 6 ++++++
b01884
 1 file changed, 6 insertions(+)
b01884
b01884
diff --git a/daemons/ipa-kdb/ipa_kdb_mspac.c b/daemons/ipa-kdb/ipa_kdb_mspac.c
b01884
index 11e036986a..329a5c1158 100644
b01884
--- a/daemons/ipa-kdb/ipa_kdb_mspac.c
b01884
+++ b/daemons/ipa-kdb/ipa_kdb_mspac.c
b01884
@@ -2586,6 +2586,12 @@ krb5_error_code ipadb_mspac_get_trusted_domains(struct ipadb_context *ipactx)
b01884
         }
b01884
 
b01884
         /* We should have a single AVA in the domain RDN */
b01884
+        if (rdn == NULL) {
b01884
+            ldap_dnfree(dn);
b01884
+            ret = EINVAL;
b01884
+            goto done;
b01884
+        }
b01884
+
b01884
         t[n].parent_name = strndup(rdn[0]->la_value.bv_val, rdn[0]->la_value.bv_len);
b01884
 
b01884
         ldap_dnfree(dn);
b01884
From 28b89df5ed8a9a060227433e8eeebf7eea844bb9 Mon Sep 17 00:00:00 2001
b01884
From: Christian Heimes <cheimes@redhat.com>
b01884
Date: Thu, 1 Nov 2018 11:41:47 +0100
b01884
Subject: [PATCH] ipapwd_pre_mod: NULL ptr deref
b01884
b01884
In ipapwd_pre_mod, check userpw for NULL before dereferencing its first
b01884
element.
b01884
b01884
See: https://pagure.io/freeipa/issue/7738
b01884
Signed-off-by: Christian Heimes <cheimes@redhat.com>
b01884
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
b01884
---
b01884
 daemons/ipa-slapi-plugins/ipa-pwd-extop/prepost.c | 2 +-
b01884
 1 file changed, 1 insertion(+), 1 deletion(-)
b01884
b01884
diff --git a/daemons/ipa-slapi-plugins/ipa-pwd-extop/prepost.c b/daemons/ipa-slapi-plugins/ipa-pwd-extop/prepost.c
b01884
index 3c3c7e8845..9aef2f7d7d 100644
b01884
--- a/daemons/ipa-slapi-plugins/ipa-pwd-extop/prepost.c
b01884
+++ b/daemons/ipa-slapi-plugins/ipa-pwd-extop/prepost.c
b01884
@@ -766,7 +766,7 @@ static int ipapwd_pre_mod(Slapi_PBlock *pb)
b01884
     /* Check this is a clear text password, or refuse operation (only if we need
b01884
      * to comput other hashes */
b01884
     if (! unhashedpw && (gen_krb_keys || is_smb || is_ipant)) {
b01884
-        if ('{' == userpw[0]) {
b01884
+        if ((userpw != NULL) && ('{' == userpw[0])) {
b01884
             if (0 == strncasecmp(userpw, "{CLEAR}", strlen("{CLEAR}"))) {
b01884
                 unhashedpw = slapi_ch_strdup(&userpw[strlen("{CLEAR}")]);
b01884
                 if (NULL == unhashedpw) {
b01884
From 5abe3d9feff3c0e66a43fa3799611521f83ee893 Mon Sep 17 00:00:00 2001
b01884
From: Alexander Bokovoy <abokovoy@redhat.com>
b01884
Date: Wed, 7 Nov 2018 11:57:53 +0200
b01884
Subject: [PATCH] ipaserver.install.adtrust: fix CID 323644
b01884
b01884
Fix Coverity finding CID 323644: logically dead code path
b01884
b01884
The code to determine whether NetBIOS name was already set or need to be
b01884
set after deriving it from a domain or asking a user for an interactive
b01884
input, was refactored at some point to avoid retrieving the whole LDAP
b01884
entry. Instead, it was provided with the actual NetBIOS name retrieved.
b01884
b01884
As result, a part of the code got neglected and was never executed.
b01884
b01884
Fix this code and provide a test that tries to test predefined,
b01884
interactively provided and automatically derived NetBIOS name depending
b01884
on how the installer is being run.
b01884
b01884
We mock up the actual execution so that no access to LDAP or Samba is
b01884
needed.
b01884
b01884
Backport to ipa-4-7 takes into account Python 2.7 differences:
b01884
 - uses mock instead of unittest.mock if the latter is not available
b01884
 - derives ApiMockup from object
b01884
b01884
Fixes: https://pagure.io/freeipa/issue/7753
b01884
Reviewed-By: Christian Heimes <cheimes@redhat.com>
b01884
(cherry picked from commit 82af034023b03ae64f005c8160b9e961e7b9fd55)
b01884
b01884
Reviewed-By: Christian Heimes <cheimes@redhat.com>
b01884
---
b01884
 ipaserver/install/adtrust.py                  |  3 +-
b01884
 .../test_ipaserver/test_adtrust_mockup.py     | 58 +++++++++++++++++++
b01884
 2 files changed, 59 insertions(+), 2 deletions(-)
b01884
 create mode 100644 ipatests/test_ipaserver/test_adtrust_mockup.py
b01884
b01884
diff --git a/ipaserver/install/adtrust.py b/ipaserver/install/adtrust.py
b01884
index e9ae3fa3ed..75194eed8f 100644
b01884
--- a/ipaserver/install/adtrust.py
b01884
+++ b/ipaserver/install/adtrust.py
b01884
@@ -95,7 +95,6 @@ def set_and_check_netbios_name(netbios_name, unattended, api):
b01884
     cur_netbios_name = None
b01884
     gen_netbios_name = None
b01884
     reset_netbios_name = False
b01884
-    entry = None
b01884
 
b01884
     if api.Backend.ldap2.isconnected():
b01884
         cur_netbios_name = retrieve_netbios_name(api)
b01884
@@ -133,7 +132,7 @@ def set_and_check_netbios_name(netbios_name, unattended, api):
b01884
             gen_netbios_name = adtrustinstance.make_netbios_name(
b01884
                 api.env.domain)
b01884
 
b01884
-        if entry is not None:
b01884
+        if gen_netbios_name is not None:
b01884
             # Fix existing trust configuration
b01884
             print("Trust is configured but no NetBIOS domain name found, "
b01884
                   "setting it now.")
b01884
diff --git a/ipatests/test_ipaserver/test_adtrust_mockup.py b/ipatests/test_ipaserver/test_adtrust_mockup.py
b01884
new file mode 100644
b01884
index 0000000000..614a06f8c8
b01884
--- /dev/null
b01884
+++ b/ipatests/test_ipaserver/test_adtrust_mockup.py
b01884
@@ -0,0 +1,58 @@
b01884
+# Copyright (C) 2018  FreeIPA Project Contributors - see LICENSE file
b01884
+
b01884
+from __future__ import print_function
b01884
+import ipaserver.install.adtrust as adtr
b01884
+from ipaserver.install.adtrust import set_and_check_netbios_name
b01884
+from collections import namedtuple
b01884
+from unittest import TestCase
b01884
+try:
b01884
+    from unittest import mock
b01884
+except ImportError:
b01884
+    import mock
b01884
+from io import StringIO
b01884
+
b01884
+
b01884
+class ApiMockup(object):
b01884
+    Backend = namedtuple('Backend', 'ldap2')
b01884
+    Calls = namedtuple('Callbacks', 'retrieve_netbios_name')
b01884
+    env = namedtuple('Environment', 'domain')
b01884
+
b01884
+
b01884
+class TestNetbiosName(TestCase):
b01884
+    @classmethod
b01884
+    def setUpClass(cls):
b01884
+        api = ApiMockup()
b01884
+        ldap2 = namedtuple('LDAP', 'isconnected')
b01884
+        ldap2.isconnected = mock.MagicMock(return_value=True)
b01884
+        api.Backend.ldap2 = ldap2
b01884
+        api.Calls.retrieve_netbios_name = adtr.retrieve_netbios_name
b01884
+        adtr.retrieve_netbios_name = mock.MagicMock(return_value=None)
b01884
+        cls.api = api
b01884
+
b01884
+    @classmethod
b01884
+    def tearDownClass(cls):
b01884
+        adtr.retrieve_netbios_name = cls.api.Calls.retrieve_netbios_name
b01884
+
b01884
+    def test_NetbiosName(self):
b01884
+        """
b01884
+        Test set_and_check_netbios_name() using permutation of two inputs:
b01884
+        - predefined and not defined NetBIOS name
b01884
+        - unattended and interactive run
b01884
+        As result, the function has to return expected NetBIOS name in
b01884
+        all cases. For interactive run we override input to force what
b01884
+        we expect.
b01884
+        """
b01884
+        self.api.env.domain = 'example.com'
b01884
+        expected_nname = 'EXAMPLE'
b01884
+        # NetBIOS name, unattended, should set the name?
b01884
+        tests = ((expected_nname, True, False),
b01884
+                 (None, True, True),
b01884
+                 (None, False, True),
b01884
+                 (expected_nname, False, False))
b01884
+        with mock.patch('sys.stdin', new_callable=StringIO) as stdin:
b01884
+            stdin.write(expected_nname + '\r')
b01884
+            for test in tests:
b01884
+                nname, setname = set_and_check_netbios_name(
b01884
+                    test[0], test[1], self.api)
b01884
+                assert expected_nname == nname
b01884
+                assert setname == test[2]
b01884
From 48a6048be2a3c6cf496a67a2732b8aaee91af620 Mon Sep 17 00:00:00 2001
b01884
From: Christian Heimes <cheimes@redhat.com>
b01884
Date: Thu, 8 Nov 2018 10:42:43 +0100
b01884
Subject: [PATCH] Copy-paste error in permssions plugin, CID 323649
b01884
b01884
Address a bug in the code block for attributeLevelRights for old clients.
b01884
The backward compatibility code for deprecated options was not triggered,
b01884
because the new name was checked against wrong dict.
b01884
b01884
Coverity Scan issue 323649, Copy-paste error
b01884
b01884
   The copied code will not have its intended effect.
b01884
   In postprocess_result: A copied piece of code is inconsistent with the
b01884
   original (CWE-398)
b01884
b01884
See: Fixes: https://pagure.io/freeipa/issue/7753
b01884
Signed-off-by: Christian Heimes <cheimes@redhat.com>
b01884
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
b01884
---
b01884
 ipaserver/plugins/permission.py                    | 2 +-
b01884
 ipatests/test_xmlrpc/test_old_permission_plugin.py | 4 ++--
b01884
 2 files changed, 3 insertions(+), 3 deletions(-)
b01884
b01884
diff --git a/ipaserver/plugins/permission.py b/ipaserver/plugins/permission.py
b01884
index 2127d8234e..8ffe01bd88 100644
b01884
--- a/ipaserver/plugins/permission.py
b01884
+++ b/ipaserver/plugins/permission.py
b01884
@@ -486,7 +486,7 @@ def postprocess_result(self, entry, options):
b01884
 
b01884
             if old_client:
b01884
                 for old_name, new_name in _DEPRECATED_OPTION_ALIASES.items():
b01884
-                    if new_name in entry:
b01884
+                    if new_name in rights:
b01884
                         rights[old_name] = rights[new_name]
b01884
                         del rights[new_name]
b01884
 
b01884
diff --git a/ipatests/test_xmlrpc/test_old_permission_plugin.py b/ipatests/test_xmlrpc/test_old_permission_plugin.py
b01884
index 6d1117b6b3..600e449421 100644
b01884
--- a/ipatests/test_xmlrpc/test_old_permission_plugin.py
b01884
+++ b/ipatests/test_xmlrpc/test_old_permission_plugin.py
b01884
@@ -73,8 +73,8 @@
b01884
                                      'ipapermbindruletype': u'rscwo',
b01884
                                      'ipapermdefaultattr': u'rscwo',
b01884
                                      'ipapermexcludedattr': u'rscwo',
b01884
-                                     'ipapermlocation': u'rscwo',
b01884
-                                     'ipapermright': u'rscwo',
b01884
+                                     'subtree': u'rscwo',  # old
b01884
+                                     'permissions': u'rscwo',  # old
b01884
                                      'ipapermtarget': u'rscwo',
b01884
                                      'ipapermtargetfilter': u'rscwo',
b01884
                                      'ipapermtargetto': u'rscwo',