tests: Add reproducer for bug 15487
authorVolker Lendecke <vl@samba.org>
Sat, 7 Oct 2023 10:28:05 +0000 (12:28 +0200)
committerVolker Lendecke <vl@samba.org>
Tue, 10 Oct 2023 08:19:29 +0000 (08:19 +0000)
Show that smbd crashes if asked to return full information on close of a
stream handle with delete on close disposition set.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=15487

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
python/samba/tests/libsmb-basic.py
selftest/knownfail.d/close_full_info [new file with mode: 0644]

index 163c5b09ea987eadaebf574eaab73170ec85f96f..20d3dd48c3c24808132268df5428f7c10a32e6d7 100644 (file)
@@ -242,6 +242,27 @@ class LibsmbTestCase(samba.tests.libsmb.LibsmbTests):
         # Without the bugfix for 15481 we get 'file' not 'File'
         self.assertEqual(directory[0]['name'], 'File')
 
+    def test_stream_close_with_full_information(self):
+        c = libsmb.Conn(self.server_ip, "streams_xattr", self.lp, self.creds)
+
+        try:
+            c.deltree("teststreams")
+        except:
+            pass
+
+        c.mkdir("teststreams")
+        fh = c.create("teststreams\\stream_full_close_info.txt:Stream",
+                      DesiredAccess=security.SEC_STD_DELETE,
+                      CreateDisposition=libsmb.FILE_CREATE)
+        c.delete_on_close(fh, 1)
+
+        try:
+            c.close(fh, libsmb.SMB2_CLOSE_FLAGS_FULL_INFORMATION)
+        except:
+            self.fail()
+
+        c.deltree("teststreams")
+
 if __name__ == "__main__":
     import unittest
     unittest.main()
diff --git a/selftest/knownfail.d/close_full_info b/selftest/knownfail.d/close_full_info
new file mode 100644 (file)
index 0000000..ff8e2ab
--- /dev/null
@@ -0,0 +1 @@
+^samba.tests.libsmb-basic.samba.tests.libsmb-basic.LibsmbTestCase.test_stream_close_with_full_information