a3a04f
From d80f5dc85d6fb9ebfef807932bef10e6c0c86468 Mon Sep 17 00:00:00 2001
a3a04f
From: Volker Lendecke <vl@samba.org>
a3a04f
Date: Fri, 17 Mar 2017 13:52:57 +0100
a3a04f
Subject: [PATCH 1/3] s3:winbind: Use the correct talloc context for user
a3a04f
 information
a3a04f
a3a04f
This fixes the substitution for 'template homedir'.
a3a04f
a3a04f
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12699
a3a04f
a3a04f
Signed-off-by: Volker Lendecke <vl@samba.org>
a3a04f
Reviewed-by: Andreas Schneider <asn@samba.org>
a3a04f
a3a04f
Autobuild-User(master): Volker Lendecke <vl@samba.org>
a3a04f
Autobuild-Date(master): Sat Mar 18 19:47:40 CET 2017 on sn-devel-144
a3a04f
a3a04f
(cherry picked from commit ece5e67bbc027432aeb3d97205ef093a0acda8d5)
a3a04f
---
a3a04f
 source3/winbindd/wb_queryuser.c | 2 +-
a3a04f
 1 file changed, 1 insertion(+), 1 deletion(-)
a3a04f
a3a04f
diff --git a/source3/winbindd/wb_queryuser.c b/source3/winbindd/wb_queryuser.c
a3a04f
index be4d3d3e665..69b4c8dad5a 100644
a3a04f
--- a/source3/winbindd/wb_queryuser.c
a3a04f
+++ b/source3/winbindd/wb_queryuser.c
a3a04f
@@ -329,7 +329,7 @@ static void wb_queryuser_got_group_name(struct tevent_req *subreq)
a3a04f
 	NTSTATUS status;
a3a04f
 	const char *domain_name;
a3a04f
 
a3a04f
-	status = wb_lookupsid_recv(subreq, state, &type, &domain_name,
a3a04f
+	status = wb_lookupsid_recv(subreq, state->info, &type, &domain_name,
a3a04f
 				   &state->info->primary_group_name);
a3a04f
 	TALLOC_FREE(subreq);
a3a04f
 	if (tevent_req_nterror(req, status)) {
a3a04f
-- 
a3a04f
2.12.0
a3a04f
a3a04f
a3a04f
From 80fddd3572702bd45565fcc53e75d098c4fb0cf3 Mon Sep 17 00:00:00 2001
a3a04f
From: Andreas Schneider <asn@samba.org>
a3a04f
Date: Wed, 15 Mar 2017 12:37:08 +0100
a3a04f
Subject: [PATCH 2/3] s3:tests: Add a subsitution test for %D %u %g
a3a04f
a3a04f
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12699
a3a04f
a3a04f
Signed-off-by: Andreas Schneider <asn@samba.org>
a3a04f
Reviewed-by: Jeremy Allison <jra@samba.org>
a3a04f
(cherry picked from commit 2be02fdd1ed1d565e28f50d02ff5216391ac0660)
a3a04f
---
a3a04f
 selftest/target/Samba3.pm                  | 19 ++++++++++++++++++-
a3a04f
 source3/script/tests/test_substitutions.sh |  9 +++++++--
a3a04f
 2 files changed, 25 insertions(+), 3 deletions(-)
a3a04f
a3a04f
diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm
a3a04f
index f5b2c510224..1e053f12297 100755
a3a04f
--- a/selftest/target/Samba3.pm
a3a04f
+++ b/selftest/target/Samba3.pm
a3a04f
@@ -394,16 +394,33 @@ sub setup_admember($$$$)
a3a04f
 	$substitution_path = "$share_dir/D_SAMBADOMAIN/U_alice/G_domain users";
a3a04f
 	push(@dirs, $substitution_path);
a3a04f
 
a3a04f
+	# Using '/' as the winbind separator is a bad idea ...
a3a04f
+	$substitution_path = "$share_dir/D_SAMBADOMAIN/u_SAMBADOMAIN";
a3a04f
+	push(@dirs, $substitution_path);
a3a04f
+
a3a04f
+	$substitution_path = "$share_dir/D_SAMBADOMAIN/u_SAMBADOMAIN/alice";
a3a04f
+	push(@dirs, $substitution_path);
a3a04f
+
a3a04f
+	$substitution_path = "$share_dir/D_SAMBADOMAIN/u_SAMBADOMAIN/alice/g_SAMBADOMAIN";
a3a04f
+	push(@dirs, $substitution_path);
a3a04f
+
a3a04f
+	$substitution_path = "$share_dir/D_SAMBADOMAIN/u_SAMBADOMAIN/alice/g_SAMBADOMAIN/domain users";
a3a04f
+	push(@dirs, $substitution_path);
a3a04f
+
a3a04f
 	my $member_options = "
a3a04f
 	security = ads
a3a04f
         workgroup = $dcvars->{DOMAIN}
a3a04f
         realm = $dcvars->{REALM}
a3a04f
         netbios aliases = foo bar
a3a04f
 
a3a04f
-[subDUG]
a3a04f
+[sub_dug]
a3a04f
 	path = $share_dir/D_%D/U_%U/G_%G
a3a04f
 	writeable = yes
a3a04f
 
a3a04f
+[sub_dug2]
a3a04f
+	path = $share_dir/D_%D/u_%u/g_%g
a3a04f
+	writeable = yes
a3a04f
+
a3a04f
 ";
a3a04f
 
a3a04f
 	my $ret = $self->provision($prefix,
a3a04f
diff --git a/source3/script/tests/test_substitutions.sh b/source3/script/tests/test_substitutions.sh
a3a04f
index 0852ad969f0..1a46f11c85d 100755
a3a04f
--- a/source3/script/tests/test_substitutions.sh
a3a04f
+++ b/source3/script/tests/test_substitutions.sh
a3a04f
@@ -24,9 +24,14 @@ smbclient="$samba_bindir/smbclient"
a3a04f
 . $samba_srcdir/testprogs/blackbox/subunit.sh
a3a04f
 . $samba_srcdir/testprogs/blackbox/common_test_fns.inc
a3a04f
 
a3a04f
-SMB_UNC="//$SERVER/subDUG"
a3a04f
+SMB_UNC="//$SERVER/sub_dug"
a3a04f
 
a3a04f
-test_smbclient "Test login to share with substitution" \
a3a04f
+test_smbclient "Test login to share with substitution (DUG)" \
a3a04f
+	"ls" "$SMB_UNC" "-U$USERNAME%$PASSWORD" || failed=$(expr $failed + 1)
a3a04f
+
a3a04f
+SMB_UNC="//$SERVER/sub_dug2"
a3a04f
+
a3a04f
+test_smbclient "Test login to share with substitution (Dug)" \
a3a04f
 	"ls" "$SMB_UNC" "-U$USERNAME%$PASSWORD" || failed=$(expr $failed + 1)
a3a04f
 
a3a04f
 exit $failed
a3a04f
-- 
a3a04f
2.12.0
a3a04f
a3a04f
a3a04f
From 3868c86ec0800b08c0ef1bf8328b6c1f3cd9437c Mon Sep 17 00:00:00 2001
a3a04f
From: Andreas Schneider <asn@samba.org>
a3a04f
Date: Fri, 17 Mar 2017 10:04:19 +0100
a3a04f
Subject: [PATCH 3/3] selftest: Define template homedir for 'ad_member' env
a3a04f
a3a04f
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12699
a3a04f
a3a04f
With this set, the samba3.local.nss test for ad_member will ensure that
a3a04f
we correctly substitute those smb.conf options.
a3a04f
a3a04f
Signed-off-by: Andreas Schneider <asn@samba.org>
a3a04f
Reviewed-by: Jeremy Allison <jra@samba.org>
a3a04f
a3a04f
Autobuild-User(master): Jeremy Allison <jra@samba.org>
a3a04f
Autobuild-Date(master): Thu Mar 30 04:26:18 CEST 2017 on sn-devel-144
a3a04f
a3a04f
(cherry picked from commit 5f4979509950547e68af7f64ac263d0e0705ee03)
a3a04f
---
a3a04f
 nsswitch/tests/test_wbinfo.sh | 17 +++++++++++------
a3a04f
 selftest/target/Samba3.pm     |  1 +
a3a04f
 2 files changed, 12 insertions(+), 6 deletions(-)
a3a04f
a3a04f
diff --git a/nsswitch/tests/test_wbinfo.sh b/nsswitch/tests/test_wbinfo.sh
a3a04f
index cfe582df068..f9c040e5f43 100755
a3a04f
--- a/nsswitch/tests/test_wbinfo.sh
a3a04f
+++ b/nsswitch/tests/test_wbinfo.sh
a3a04f
@@ -205,13 +205,18 @@ subunit_start_test "$test_name"
a3a04f
 # The full name (GECOS) is based on name (the RDN, in this case CN)
a3a04f
 # and displayName in winbindd_ads, and is based only on displayName in
a3a04f
 # winbindd_msrpc and winbindd_rpc.  Allow both versions.
a3a04f
-expected_line="$DOMAIN/administrator:*:$admin_uid:$gid:Administrator:/home/$DOMAIN/administrator:/bin/false"
a3a04f
-expected2_line="$DOMAIN/administrator:*:$admin_uid:$gid::/home/$DOMAIN/administrator:/bin/false"
a3a04f
+if test "$TARGET" = "ad_member"; then
a3a04f
+	expected1_line="$DOMAIN/administrator:*:$admin_uid:$gid:Administrator:/home/$DOMAIN/Domain Users/administrator:/bin/false"
a3a04f
+	expected2_line="$DOMAIN/administrator:*:$admin_uid:$gid::/home/$DOMAIN/Domain Users/administrator:/bin/false"
a3a04f
+else
a3a04f
+	expected1_line="$DOMAIN/administrator:*:$admin_uid:$gid:Administrator:/home/$DOMAIN/administrator:/bin/false"
a3a04f
+	expected2_line="$DOMAIN/administrator:*:$admin_uid:$gid::/home/$DOMAIN/administrator:/bin/false"
a3a04f
+fi
a3a04f
 
a3a04f
-if test x$passwd_line = x"$expected_line" -o x$passwd_line = x"$expected2_line"; then
a3a04f
+if test "x$passwd_line" = "x$expected1_line" -o "x$passwd_line" = "x$expected2_line"; then
a3a04f
 	subunit_pass_test "$test_name"
a3a04f
 else
a3a04f
-	echo "expected '$expected_line' or '$expected2_line' got '$passwd_line'" | subunit_fail_test "$test_name"
a3a04f
+	echo "expected '$expected1_line' or '$expected2_line' got '$passwd_line'" | subunit_fail_test "$test_name"
a3a04f
 	failed=`expr $failed + 1`
a3a04f
 fi
a3a04f
 
a3a04f
@@ -227,10 +232,10 @@ fi
a3a04f
 
a3a04f
 test_name="confirm output of wbinfo --uid-info against $TARGET"
a3a04f
 subunit_start_test "$test_name"
a3a04f
-if test x$passwd_line = x"$expected_line" -o x$passwd_line = x"$expected2_line"; then
a3a04f
+if test "x$passwd_line" = "x$expected1_line" -o "x$passwd_line" = "x$expected2_line"; then
a3a04f
 	subunit_pass_test "$test_name"
a3a04f
 else
a3a04f
-	echo "expected '$expected_line' or '$expected2_line' got '$passwd_line'" | subunit_fail_test "$test_name"
a3a04f
+	echo "expected '$expected1_line' or '$expected2_line' got '$passwd_line'" | subunit_fail_test "$test_name"
a3a04f
 	failed=`expr $failed + 1`
a3a04f
 fi
a3a04f
 
a3a04f
diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm
a3a04f
index 1e053f12297..cb4970828a5 100755
a3a04f
--- a/selftest/target/Samba3.pm
a3a04f
+++ b/selftest/target/Samba3.pm
a3a04f
@@ -412,6 +412,7 @@ sub setup_admember($$$$)
a3a04f
         workgroup = $dcvars->{DOMAIN}
a3a04f
         realm = $dcvars->{REALM}
a3a04f
         netbios aliases = foo bar
a3a04f
+	template homedir = /home/%D/%G/%U
a3a04f
 
a3a04f
 [sub_dug]
a3a04f
 	path = $share_dir/D_%D/U_%U/G_%G
a3a04f
-- 
a3a04f
2.12.0
a3a04f