summaryrefslogtreecommitdiff
path: root/python/samba
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2024-03-25 22:21:19 +1300
committerAndrew Bartlett <abartlet@samba.org>2024-04-10 05:13:32 +0000
commitbda4e1233a145f11aa92b89a5658d94cd9252267 (patch)
tree12c8cd0758def3670fbc22ffe7ab44bfb659d114 /python/samba
parent8ac18495ba238985a82dbe5a3c95c78c3c51f4b6 (diff)
downloadsamba-bda4e1233a145f11aa92b89a5658d94cd9252267.tar.gz
samba-bda4e1233a145f11aa92b89a5658d94cd9252267.tar.bz2
samba-bda4e1233a145f11aa92b89a5658d94cd9252267.zip
ldb: Add more segfault tests DN handling
- from_dict DN use-after-free - check for the same directly creating the ldb.Message Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Diffstat (limited to 'python/samba')
-rw-r--r--python/samba/tests/segfault.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/python/samba/tests/segfault.py b/python/samba/tests/segfault.py
index 2b543dc6382..8b1676a90d0 100644
--- a/python/samba/tests/segfault.py
+++ b/python/samba/tests/segfault.py
@@ -377,6 +377,46 @@ class SegfaultTests(samba.tests.TestCase):
@no_gdb_backtrace
@segfault_detector
+ def test_ldb_use_after_dict_init(self):
+
+ msg = ldb.Message()
+
+ samdb = self.get_samdb()
+ msg.dn = ldb.Dn(samdb, "CN=Test")
+
+ msg2 = ldb.Message.from_dict(samdb,
+ {"dn": msg.dn,
+ "foo": ["bar"]})
+ del msg
+ dn = msg2.dn
+ dn.add_child("CN=TEST")
+ dn.set_component(0, "CN", "Test2")
+
+ del samdb
+
+ dn.get_casefold()
+
+ @no_gdb_backtrace
+ @segfault_detector
+ def test_ldb_use_after_msg_init(self):
+
+ msg = ldb.Message()
+
+ samdb = self.get_samdb()
+ msg.dn = ldb.Dn(samdb, "CN=Test")
+
+ msg2 = ldb.Message(dn=msg.dn)
+ del msg
+ dn = msg2.dn
+ dn.add_child("CN=TEST")
+ dn.set_component(0, "CN", "Test2")
+
+ del samdb
+
+ dn.get_casefold()
+
+ @no_gdb_backtrace
+ @segfault_detector
def test_ldb_use_after_free_msg_diff(self):
samdb = self.get_samdb()
msg = ldb.Message()