s3: tests: Add regression test for bug 13992.
authorJeremy Allison <jra@samba.org>
Thu, 28 Jan 2021 22:07:23 +0000 (14:07 -0800)
committerKarolin Seeger <kseeger@samba.org>
Wed, 3 Feb 2021 21:23:55 +0000 (21:23 +0000)
Subtle extra test. Mark as knownfail for now.

'^ user1$' must appear MORE THAN ONCE, as it can read more than one
share. The previous test found user1, but only once as the bug only
allows reading the security descriptor for one share, and we were
unlucky that the first share security descriptor returned allows
user1 to read from it.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13992

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
(cherry picked from commit 068f4a977f0539f790809d580bf22d2362032e3d)

selftest/knownfail.d/bug-13992 [new file with mode: 0644]
source3/script/tests/test_net_rpc_share_allowedusers.sh

diff --git a/selftest/knownfail.d/bug-13992 b/selftest/knownfail.d/bug-13992
new file mode 100644 (file)
index 0000000..76365f0
--- /dev/null
@@ -0,0 +1,2 @@
+# bug 13992
+^samba3.blackbox.net_rpc_share_allowedusers.net_rpc_share_allowedusers\(nt4_dc\)
index 5dd382d4c5166654331508368ce58d1d8d4adede..d22c758068125f6cf18b124d55c798f2a4265710 100755 (executable)
@@ -26,5 +26,25 @@ testit_grep "net_rpc_share_allowedusers" '^print\$$' $net usersidlist | $VALGRIN
 testit_grep "net_rpc_share_allowedusers" '^print\$$' $net usersidlist | $VALGRIND $net rpc share allowedusers -S$SERVER -U$USERNAME%$PASSWORD $ADDARGS - 'print$' || failed=`expr $failed + 1`
 # Check user "user1" is allowed to read share "tmp".
 testit_grep "net_rpc_share_allowedusers" '^ user1$' $net usersidlist | $VALGRIND $net rpc share allowedusers -S$SERVER -U$USERNAME%$PASSWORD $ADDARGS || failed=`expr $failed + 1`
+#
+# Subtle extra test for bug https://bugzilla.samba.org/show_bug.cgi?id=13992
+#
+# '^ user1$' must appear MORE THAN ONCE, as it can read more than one
+# share. The previous test found user1, but only once as the bug only
+# allows reading the security descriptor for one share, and we were
+# unlucky that the first share security descriptor returned allows
+# user1 to read from it.
+#
+subunit_start_test "net_rpc_share_allowedusers"
+multi_userout=`$net usersidlist | $VALGRIND $net rpc share allowedusers -S$SERVER -U$USERNAME%$PASSWORD $ADDARGS`
+num_matches=`echo "$multi_userout" | grep -c '^ user1$'`
+if [ "$num_matches" -gt "1" ]
+then
+       subunit_pass_test "net_rpc_share_allowedusers"
+else
+       echo "net_rpc_share_allowedusers only found $num_matches shares readable by user1. Should be greater than one.\n"
+       failed=`expr $failed + 1`
+       echo "$multi_userout" | subunit_fail_test "net_rpc_share_allowedusers"
+fi
 
 testok $0 $failed