From: Andrew Bartlett Date: Tue, 19 Nov 2019 21:56:14 +0000 (+1300) Subject: selftest: Confirm that --base64-input and --input work and a PIDL bug is fixed. X-Git-Tag: ldb-2.1.0~658 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b1eda993b658590ebb0a8225e448ce399946ed83;p=thirdparty%2Fsamba.git selftest: Confirm that --base64-input and --input work and a PIDL bug is fixed. The PIDL bug is in the handling of arrays of arrays. Test input provided by Michael Hanselmann and found using Hongfuzz. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13875 Signed-off-by: Andrew Bartlett Reviewed-by: Douglas Bagnall --- diff --git a/python/samba/tests/blackbox/ndrdump.py b/python/samba/tests/blackbox/ndrdump.py index 4e638c920d8..a9e6b5b54a2 100644 --- a/python/samba/tests/blackbox/ndrdump.py +++ b/python/samba/tests/blackbox/ndrdump.py @@ -110,3 +110,32 @@ dump OK # check_output will return bytes # convert expected to bytes for python 3 self.assertEqual(actual, expected.encode('utf-8')) + + def test_ndrdump_fuzzed_clusapi_QueryAllValues(self): + expected = b'''pull returned Success +WARNING! 53 unread bytes +[0000] 00 FF 00 00 FF 00 00 00 00 09 00 00 00 08 00 33 ........ .......3 +[0010] 33 32 37 36 32 36 39 33 32 37 36 38 34 01 00 00 32762693 27684... +[0020] 80 32 0D FF 00 00 FF 00 00 00 00 08 00 00 00 1C .2...... ........ +[0030] F1 29 08 00 00 .)... ''' \ + b''' + clusapi_QueryAllValues: struct clusapi_QueryAllValues + out: struct clusapi_QueryAllValues + pcbData : * + pcbData : 0x01000000 (16777216) + ppData : * + ppData: ARRAY(1) + ppData : NULL + rpc_status : * + rpc_status : WERR_OK + result : WERR_NOT_ENOUGH_MEMORY +dump OK +''' + try: + actual = self.check_output( + 'ndrdump clusapi clusapi_QueryAllValues out ' +\ + '--base64-input --input=' +\ + 'AAAAAQEAAAAAAAAAAAAAAAgAAAAA/wAA/wAAAAAJAAAACAAzMzI3NjI2OTMyNzY4NAEAAIAyDf8AAP8AAAAACAAAABzxKQgAAA==') + except BlackboxProcessError as e: + self.fail(e) + self.assertEqual(actual, expected) diff --git a/selftest/knownfail.d/ndrdump b/selftest/knownfail.d/ndrdump new file mode 100644 index 00000000000..4c91544d37a --- /dev/null +++ b/selftest/knownfail.d/ndrdump @@ -0,0 +1 @@ +^samba.tests.blackbox.ndrdump.samba.tests.blackbox.ndrdump.NdrDumpTests.test_ndrdump_clusapi_QueryAllValues \ No newline at end of file