The Samba-Bugzilla – Attachment 17712 Details for
Bug 15266
shares missing from netshareenum response in samba 4.17.4
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patches for v4-17-test
bfixes-tmp417.txt (text/plain), 8.99 KB, created by
Stefan Metzmacher
on 2022-12-30 12:39:28 UTC
(
hide
)
Description:
Patches for v4-17-test
Filename:
MIME Type:
Creator:
Stefan Metzmacher
Created:
2022-12-30 12:39:28 UTC
Size:
8.99 KB
patch
obsolete
>From 53d81dbecbca90b9b4715de3d895ea881725138e Mon Sep 17 00:00:00 2001 >From: Volker Lendecke <vl@samba.org> >Date: Wed, 9 Nov 2022 14:04:23 +0100 >Subject: [PATCH 1/3] testprogs: Add testit_grep_count() helper > >Signed-off-by: Volker Lendecke <vl@samba.org> >Reviewed-by: Stefan Metzmacher <metze@samba.org> >(cherry picked from commit 55feb593012fc5b24e795a00081666fca740429c) > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=15243 >BUG: https://bugzilla.samba.org/show_bug.cgi?id=15266 >--- > testprogs/blackbox/subunit.sh | 29 +++++++++++++++++++++++++++++ > 1 file changed, 29 insertions(+) > >diff --git a/testprogs/blackbox/subunit.sh b/testprogs/blackbox/subunit.sh >index 75a9b5ec7e3c..ba4e997c5253 100755 >--- a/testprogs/blackbox/subunit.sh >+++ b/testprogs/blackbox/subunit.sh >@@ -121,6 +121,35 @@ testit_grep() > return $status > } > >+# This returns 0 if the command gave success and the grep value was found >+# num times all other cases return != 0 >+testit_grep_count() >+{ >+ name="$1" >+ shift >+ grep="$1" >+ shift >+ num="$1" >+ shift >+ cmdline="$@" >+ subunit_start_test "$name" >+ output=$($cmdline 2>&1) >+ status=$? >+ if [ x$status != x0 ]; then >+ printf '%s' "$output" | subunit_fail_test "$name" >+ return $status >+ fi >+ found=$(printf '%s' "$output" | grep -c "$grep") >+ if [ x"$found" = x"$num" ]; then >+ subunit_pass_test "$name" >+ else >+ printf 'GREP: "%s" found "%d" times, expected "%d" in output:\n%s'\ >+ "$grep" "$found" "$num" "$output" | >+ subunit_fail_test "$name" >+ fi >+ return $status >+} >+ > testit_expect_failure() > { > name="$1" >-- >2.34.1 > > >From 1d6cc05bf6c231cf6d4bb46d2f1370f6a6c393d4 Mon Sep 17 00:00:00 2001 >From: Stefan Metzmacher <metze@samba.org> >Date: Wed, 28 Dec 2022 16:18:40 +0100 >Subject: [PATCH 2/3] selftest: add samba3.blackbox.registry_share > >This demonstrates the regression introduced by >f03665bb7e8ea97699062630f2aa1bac4c5dfc7f, where >registry shares are no longer listed. > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=15243 >BUG: https://bugzilla.samba.org/show_bug.cgi?id=15266 > >Signed-off-by: Stefan Metzmacher <metze@samba.org> >Reviewed-by: Andrew Walker <awalker@ixsystems.com> >(cherry picked from commit a00c7395fbc7974a61a70ae54ea6ae6349933de2) >--- > selftest/knownfail.d/registry_share | 1 + > selftest/target/Samba3.pm | 30 ++++++++++++++++ > source3/script/tests/test_registry_share.sh | 39 +++++++++++++++++++++ > source3/selftest/tests.py | 4 +++ > 4 files changed, 74 insertions(+) > create mode 100644 selftest/knownfail.d/registry_share > create mode 100755 source3/script/tests/test_registry_share.sh > >diff --git a/selftest/knownfail.d/registry_share b/selftest/knownfail.d/registry_share >new file mode 100644 >index 000000000000..4adbf0915b87 >--- /dev/null >+++ b/selftest/knownfail.d/registry_share >@@ -0,0 +1 @@ >+^samba3.blackbox.registry_share.Test.for.share.enum.with.registry.share.clusteredmember >diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm >index 64374ab9bcde..72c8abac8670 100755 >--- a/selftest/target/Samba3.pm >+++ b/selftest/target/Samba3.pm >@@ -532,6 +532,36 @@ sub setup_clusteredmember > return undef; > } > >+ my $registry_share_template = "$node_ret->{SERVERCONFFILE}.registry_share_template"; >+ unless (open(REGISTRYCONF, ">$registry_share_template")) { >+ warn("Unable to open $registry_share_template"); >+ teardown_env($self, $node_ret); >+ teardown_env($self, $ctdb_data); >+ return undef; >+ } >+ >+ print REGISTRYCONF " >+[registry_share] >+ copy = tmp >+ comment = smb username is [%U] >+"; >+ >+ close(REGISTRYCONF); >+ >+ my $net = Samba::bindir_path($self, "net"); >+ my $cmd = ""; >+ >+ $cmd .= "UID_WRAPPER_ROOT=1 "; >+ $cmd .= "$net conf import $node_ret->{CONFIGURATION} ${registry_share_template}"; >+ >+ my $net_ret = system($cmd); >+ if ($net_ret != 0) { >+ warn("net conf import failed: $net_ret\n$cmd"); >+ teardown_env($self, $node_ret); >+ teardown_env($self, $ctdb_data); >+ return undef; >+ } >+ > my $nmblookup = Samba::bindir_path($self, "nmblookup"); > do { > print "Waiting for the LOGON SERVER registration ...\n"; >diff --git a/source3/script/tests/test_registry_share.sh b/source3/script/tests/test_registry_share.sh >new file mode 100755 >index 000000000000..22e9f732a58c >--- /dev/null >+++ b/source3/script/tests/test_registry_share.sh >@@ -0,0 +1,39 @@ >+#!/bin/sh >+# Blackbox tests for registry shares >+# >+ >+if [ $# -lt 3 ]; then >+ cat <<EOF >+Usage: test_registry_share.sh SERVER USERNAME PASSWORD >+EOF >+ exit 1 >+fi >+ >+SERVER=$1 >+USERNAME=$2 >+PASSWORD=$3 >+shift 3 >+failed=0 >+ >+samba_bindir="$BINDIR" >+samba_srcdir="$SRCDIR" >+smbclient="$samba_bindir/smbclient" >+rpcclient="$samba_bindir/rpcclient" >+ >+. $samba_srcdir/testprogs/blackbox/subunit.sh >+. $samba_srcdir/testprogs/blackbox/common_test_fns.inc >+ >+test_smbclient \ >+ "Test access to registry share [${USERNAME}]" \ >+ "ls" "//${SERVER}/registry_share" "-U$USERNAME%$PASSWORD" || >+ failed=$((failed + 1)) >+ >+testit_grep_count \ >+ "Test for share enum with registry share" \ >+ "netname: registry_share" \ >+ 1 \ >+ ${rpcclient} "ncacn_np:${SERVER}" "-U$USERNAME%$PASSWORD" \ >+ -c netshareenum || >+ failed=$((failed + 1)) >+ >+testok "$0" "$failed" >diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py >index 01ec90e9878c..54c788fd441d 100755 >--- a/source3/selftest/tests.py >+++ b/source3/selftest/tests.py >@@ -1376,6 +1376,10 @@ plantestsuite("samba3.blackbox.smbXsrv_client_cross_node", "clusteredmember:loca > configuration, > 'ctdb0', 'ctdb1', > "tmp"]) >+plantestsuite("samba3.blackbox.registry_share", "clusteredmember", >+ [os.path.join(samba3srcdir, >+ "script/tests/test_registry_share.sh"), >+ "$SERVER", '$DC_USERNAME', "$DC_PASSWORD"]) > > env = 'fileserver' > plantestsuite("samba3.blackbox.virus_scanner", "%s:local" % (env), >-- >2.34.1 > > >From 791f82046b6dcc2f10e3017a8f90ce2ce8a9a7c2 Mon Sep 17 00:00:00 2001 >From: Stefan Metzmacher <metze@samba.org> >Date: Wed, 28 Dec 2022 13:50:45 +0100 >Subject: [PATCH 3/3] s3:rpc_server/srvsvc: make sure we (re-)load all shares > as root. > >This fixes a regression in commit f03665bb7e8ea97699062630f2aa1bac4c5dfc7f > >The use of reload_services() has a lot of side effects, e.g. reopen of >log files and other things, which are only useful in smbd, but not in rpcd_classic. >It was also unloading the user and registry shares we loaded a few lines >above. > >We need to do all (re-)loading as root, otherwise we won't be able >to read root only smb.conf files, access registry shares, ... > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=15243 >BUG: https://bugzilla.samba.org/show_bug.cgi?id=15266 > >Signed-off-by: Stefan Metzmacher <metze@samba.org> >Reviewed-by: Andrew Walker <awalker@ixsystems.com> > >Autobuild-User(master): Stefan Metzmacher <metze@samba.org> >Autobuild-Date(master): Thu Dec 29 21:14:02 UTC 2022 on sn-devel-184 > >(cherry picked from commit f28553105be7465026bcc0fcbbed6a1a8c2133dd) >--- > selftest/knownfail.d/registry_share | 1 - > source3/rpc_server/srvsvc/srv_srvsvc_nt.c | 28 +++++++++++++---------- > 2 files changed, 16 insertions(+), 13 deletions(-) > delete mode 100644 selftest/knownfail.d/registry_share > >diff --git a/selftest/knownfail.d/registry_share b/selftest/knownfail.d/registry_share >deleted file mode 100644 >index 4adbf0915b87..000000000000 >--- a/selftest/knownfail.d/registry_share >+++ /dev/null >@@ -1 +0,0 @@ >-^samba3.blackbox.registry_share.Test.for.share.enum.with.registry.share.clusteredmember >diff --git a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c >index 233718ff310c..5114ccbdad4d 100644 >--- a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c >+++ b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c >@@ -628,30 +628,34 @@ static WERROR init_srv_share_info_ctr(struct pipes_struct *p, > union srvsvc_NetShareCtr ctr; > uint32_t resume_handle = resume_handle_p ? *resume_handle_p : 0; > const char *unix_name = session_info->unix_info->unix_name; >- int existing_home = lp_servicenumber(unix_name); >+ int existing_home = -1; > int added_home = -1; > WERROR ret = WERR_OK; > > DEBUG(5,("init_srv_share_info_ctr\n")); > >- /* Ensure all the usershares are loaded. */ >+ /* >+ * We need to make sure to reload the services for the connecting user. >+ * It is possible that we have includes with substitutions. >+ * >+ * include = /etc/samba/%U.conf >+ * >+ * We also need all printers and usershares. >+ * >+ * We need to be root in order to have access to registry shares >+ * and root only smb.conf files. >+ */ > become_root(); >+ lp_kill_all_services(); >+ lp_load_with_shares(get_dyn_CONFIGFILE()); > delete_and_reload_printers(); > load_usershare_shares(NULL, connections_snum_used); > load_registry_shares(); >- unbecome_root(); >- >+ existing_home = lp_servicenumber(unix_name); > if (existing_home == -1) { > added_home = register_homes_share(unix_name); > } >- >- /* >- * We need to make sure to reload the services for the connecting user. >- * It is possible that the we have includes with substitutions. >- * >- * include = /etc/samba/%U.conf >- */ >- reload_services(NULL, NULL, false); >+ unbecome_root(); > > num_services = lp_numservices(); > >-- >2.34.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
metze
:
review?
(
awalker
)
asn
:
review+
Actions:
View
Attachments on
bug 15266
: 17712 |
17713