]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
tests: Add test_symlink_reparse_data_buffer_parse
authorVolker Lendecke <vl@samba.org>
Thu, 7 Sep 2023 13:25:57 +0000 (15:25 +0200)
committerJeremy Allison <jra@samba.org>
Fri, 8 Sep 2023 16:27:39 +0000 (16:27 +0000)
The blob was taken from a smbclient allinfo command for a Windows
symlink. Show that reparse_data_buffer_parse() is broken.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
python/samba/tests/smb2symlink.py
selftest/knownfail.d/symlink

index 32d2f94b37e0b0b24e59b6873a6c4cfc9f76a903..a2084c6a5def1f842282db9c5f8f17d33d2ee1ea 100644 (file)
@@ -177,6 +177,21 @@ class Smb2SymlinkTests(samba.tests.libsmb.LibsmbTests):
 
         self.clean_file(smb1, symlink)
 
+    def test_symlink_reparse_data_buffer_parse(self):
+        """Test parsing a symlink reparse buffer coming from Windows"""
+
+        buf = (b'\x0c\x00\x00\xa0\x18\x00\x00\x00'
+               b'\x06\x00\x06\x00\x00\x00\x06\x00'
+               b'\x01\x00\x00\x00\x62\x00\x61\x00'
+               b'\x72\x00\x62\x00\x61\x00\x72\x00')
+
+        try:
+            syml = reparse_symlink.symlink_get(buf);
+        except:
+            self.fail("Could not parse symlink buffer")
+
+        self.assertEqual(syml, ('bar', 'bar', 0, 1));
+
 if __name__ == '__main__':
     import unittest
     unittest.main()
index 64135666aec1a7c5a1f2a70ef2e572ce3e9df4bb..ade7b9e70c6d717ea258e4d5f80303335f5eef84 100644 (file)
@@ -2,3 +2,4 @@
 ^samba.tests.smb2symlink.samba.tests.smb2symlink.Smb2SymlinkTests.test_symlinkerror_file
 ^samba.tests.smb2symlink.samba.tests.smb2symlink.Smb2SymlinkTests.test_symlinkerror_absolute_outside_share
 ^samba.tests.smb2symlink.samba.tests.smb2symlink.Smb2SymlinkTests.test_symlinkerror_absolute_inshare
+^samba.tests.smb2symlink.samba.tests.smb2symlink.Smb2SymlinkTests.test_symlink_reparse_data_buffer_parse