diff options
| author | Andrew Bartlett <abartlet@samba.org> | 2024-03-25 22:21:19 +1300 |
|---|---|---|
| committer | Andrew Bartlett <abartlet@samba.org> | 2024-04-10 05:13:32 +0000 |
| commit | bda4e1233a145f11aa92b89a5658d94cd9252267 (patch) | |
| tree | 12c8cd0758def3670fbc22ffe7ab44bfb659d114 /python/samba | |
| parent | 8ac18495ba238985a82dbe5a3c95c78c3c51f4b6 (diff) | |
| download | samba-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.py | 40 |
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() |
