summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Haslett <aaronhaslett@catalyst.net.nz>2019-03-20 19:17:07 +1300
committerGarming Sam <garming@samba.org>2019-05-06 04:23:51 +0000
commit64bccb9bca77b0b7b46f645267f81f879f31e3d1 (patch)
tree9572724237aa759b441f1bcce9a664084ae8023a
parentad3af7cdffb98b7998857db609548fc96f60c669 (diff)
downloadsamba-64bccb9bca77b0b7b46f645267f81f879f31e3d1.tar.gz
ldap: test for empty attributes list
Test for LDAP request with an empty attribute list. LDB responds with no attributes, but LDAP responds with all attributes. Fix is attached to the bug below but we can't push it upstream until we've found all instances of incorrect empty attribute list usage in Samba. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13852 Signed-off-by: Aaron Haslett <aaronhaslett@catalyst.net.nz> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
-rw-r--r--selftest/knownfail.d/ldap3
-rwxr-xr-xsource4/dsdb/tests/python/ldap.py17
2 files changed, 19 insertions, 1 deletions
diff --git a/selftest/knownfail.d/ldap b/selftest/knownfail.d/ldap
index 5bb01bc38bf..0331d3687d4 100644
--- a/selftest/knownfail.d/ldap
+++ b/selftest/knownfail.d/ldap
@@ -1,2 +1,3 @@
# the attributes too long test returns the wrong error
-^samba4.ldap.python.+test_attribute_ranges_too_long \ No newline at end of file
+^samba4.ldap.python.+test_attribute_ranges_too_long
+samba4.ldap.python\(ad_dc_default\).*__main__.BasicTests.test_ldapSearchNoAttributes
diff --git a/source4/dsdb/tests/python/ldap.py b/source4/dsdb/tests/python/ldap.py
index b46d3a1a4b7..9b43daa5891 100755
--- a/source4/dsdb/tests/python/ldap.py
+++ b/source4/dsdb/tests/python/ldap.py
@@ -3175,6 +3175,23 @@ nTSecurityDescriptor:: """ + desc_base64
self.assertTrue(len(res[0]["msTSExpireDate"]) == 1)
self.assertEquals(str(res[0]["msTSExpireDate"][0]), v_get)
+ def test_ldapSearchNoAttributes(self):
+ """Testing ldap search with no attributes"""
+
+ user_name = "testemptyattributesuser"
+ user_dn = "CN=%s,%s" % (user_name, self.base_dn)
+ delete_force(self.ldb, user_dn)
+
+ self.ldb.add({"dn": user_dn,
+ "objectClass": "user",
+ "sAMAccountName": user_name})
+
+ res = self.ldb.search(user_dn, scope=SCOPE_BASE, attrs=[])
+ delete_force(self.ldb, user_dn)
+
+ self.assertEqual(len(res), 1)
+ self.assertEqual(len(res[0]), 0)
+
class BaseDnTests(samba.tests.TestCase):