samba.git
4 years agosmbd: Use share_mode_forall_entries() in set_delete_on_close_lck()
Volker Lendecke [Wed, 14 Aug 2019 15:29:19 +0000 (17:29 +0200)]
smbd: Use share_mode_forall_entries() in set_delete_on_close_lck()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Use share_mode_forall_entries() in contend_level2_oplocks_begin_default()
Volker Lendecke [Tue, 13 Aug 2019 13:21:59 +0000 (15:21 +0200)]
smbd: Use share_mode_forall_entries() in contend_level2_oplocks_begin_default()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Add share_mode_forall_entries()
Volker Lendecke [Tue, 13 Aug 2019 13:09:51 +0000 (15:09 +0200)]
smbd: Add share_mode_forall_entries()

Abstract away the fact that we store the share modes as an array inside
"struct share_mode_data".

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Use share_entry_stale_pid() in share_mode_stale_pid()
Volker Lendecke [Tue, 13 Aug 2019 14:04:13 +0000 (16:04 +0200)]
smbd: Use share_entry_stale_pid() in share_mode_stale_pid()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Add share_entry_stale_pid()
Volker Lendecke [Tue, 13 Aug 2019 14:00:09 +0000 (16:00 +0200)]
smbd: Add share_entry_stale_pid()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Avoid passing a share mode entry to share_conflict()
Volker Lendecke [Fri, 6 Sep 2019 09:15:27 +0000 (11:15 +0200)]
smbd: Avoid passing a share mode entry to share_conflict()

Make the real data dependencies clearer, we don't need a full
share_entry, only its access and sharemode masks

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Rewrite share_conflict()
Volker Lendecke [Mon, 12 Aug 2019 10:44:39 +0000 (12:44 +0200)]
smbd: Rewrite share_conflict()

It was hard for me to understand share_conflict(), so once I understood
it I thought this version would be easier to follow.  It violates
README.Coding (one argument per line), but grouping the parameters to
mask_conflict makes it clearer to me what belongs together.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Fix a debug message hickup
Volker Lendecke [Thu, 5 Sep 2019 07:52:10 +0000 (09:52 +0200)]
smbd: Fix a debug message hickup

Mind the missing space before "(e.g. another...". While there, avoid
casts.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agolib: Use server_id_cmp() in server_id_equal()
Volker Lendecke [Sat, 7 Sep 2019 16:56:54 +0000 (18:56 +0200)]
lib: Use server_id_cmp() in server_id_equal()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agolib: Add server_id_cmp()
Volker Lendecke [Sat, 7 Sep 2019 16:55:57 +0000 (18:55 +0200)]
lib: Add server_id_cmp()

Will be used later for sorting the share mode array

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Introduce helper variables in open_mode_check()
Volker Lendecke [Fri, 6 Sep 2019 09:30:23 +0000 (11:30 +0200)]
smbd: Introduce helper variables in open_mode_check()

Less bytes .text, the compiler now does not have to expect other threads to
alter the pointers.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Let fsp_lease_type() look at leases.tdb
Volker Lendecke [Thu, 15 Aug 2019 10:10:52 +0000 (12:10 +0200)]
smbd: Let fsp_lease_type() look at leases.tdb

The same lease can be used via different TCP connections (yes, we have
tests for this!). At the end of downgrade_lease() we update all fsp's
with fsps_lease_update() that link to the lease that just was
changed. However, this is only in the local process, this is not
cross-smbd. So other smbds using the same lease can use stale
information and for example get the mandatory locking wrong.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Add quick leases_db_get_current_state()
Volker Lendecke [Tue, 13 Aug 2019 20:07:47 +0000 (22:07 +0200)]
smbd: Add quick leases_db_get_current_state()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Make "current_state" show up first in the blob
Volker Lendecke [Thu, 15 Aug 2019 14:33:57 +0000 (16:33 +0200)]
smbd: Make "current_state" show up first in the blob

Believe it or not, but without this change "num_files" was first.
Thanks Metze for this (to me at least) really, really surprising
insight!

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Make lease_type_is_exclusive() static
Volker Lendecke [Thu, 15 Aug 2019 09:59:11 +0000 (11:59 +0200)]
smbd: Make lease_type_is_exclusive() static

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Remove unused smbXsrv_open_hash()
Volker Lendecke [Mon, 16 Sep 2019 18:18:00 +0000 (11:18 -0700)]
smbd: Remove unused smbXsrv_open_hash()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Make fsp->fh->gen_id unique per process
Volker Lendecke [Mon, 16 Sep 2019 10:54:32 +0000 (03:54 -0700)]
smbd: Make fsp->fh->gen_id unique per process

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agovfs: Make "fd_handle->gen_id" 64-bit everywhere
Volker Lendecke [Mon, 16 Sep 2019 10:50:02 +0000 (03:50 -0700)]
vfs: Make "fd_handle->gen_id" 64-bit everywhere

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agoidl: Fix a typo
Volker Lendecke [Mon, 16 Sep 2019 12:04:06 +0000 (05:04 -0700)]
idl: Fix a typo

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Use direct struct assignments in smbXsrv_*.c
Volker Lendecke [Mon, 16 Sep 2019 12:26:05 +0000 (05:26 -0700)]
smbd: Use direct struct assignments in smbXsrv_*.c

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agovfs/full_audit: always log full filenames
Björn Baumbach [Mon, 16 Sep 2019 14:22:37 +0000 (16:22 +0200)]
vfs/full_audit: always log full filenames

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

Signed-off-by: Björn Baumbach <bb@sernet.de>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Tue Sep 17 17:55:55 UTC 2019 on sn-devel-184

4 years agobuild: Remove tests for getdents() and getdirentries()
Andrew Bartlett [Thu, 5 Sep 2019 19:39:09 +0000 (07:39 +1200)]
build: Remove tests for getdents() and getdirentries()

These date back to 3a9beef2b7b25427ee4611cfc375e05cc82a1150 in 2003 and
829e72fe9c97feaa3d45b768984a4c47b906a23a in 1998 and appear to be related
to smbwrapper.

More of these should be removed but the getdirents() test caused a timeout
on an ARM builder in Debian.  It might just be a fluke but the tests are
pointless regardless.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Tue Sep 17 13:48:18 UTC 2019 on sn-devel-184

4 years agoutil_sec.c: Move __thread variable to global scope
Khem Raj [Fri, 6 Sep 2019 04:39:05 +0000 (21:39 -0700)]
util_sec.c: Move __thread variable to global scope

Make clang happy otherwise it complains about variable scope

fixes

source3/./lib/util_sec.c:470:4: error: '__thread' variables must have global storage
        } __thread cache;
          ^

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Reviewed-by: Matthias Dieter Wallnöfer <mdw@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
4 years agolib/replace/wscript: Avoid generating nested main function
Khem Raj [Fri, 6 Sep 2019 04:37:33 +0000 (21:37 -0700)]
lib/replace/wscript: Avoid generating nested main function

clang is not happy when it sees another main nested inside the main
function and fails the test for prctl syscall, therefore avoid adding
implicit main() here

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Reviewed-by: Matthias Dieter Wallnöfer <mdw@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
4 years agoctdb-client: Fix some typos in debug messages
Martin Schwenke [Wed, 4 Sep 2019 04:14:22 +0000 (14:14 +1000)]
ctdb-client: Fix some typos in debug messages

  tdb_sore -> tdb_store
  SCHDULE_FOR_DELETION -> SCHEDULE_FOR_DELETION

Switch to modern debug macros while touching the lines.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Autobuild-User(master): Amitay Isaacs <amitay@samba.org>
Autobuild-Date(master): Tue Sep 17 05:52:15 UTC 2019 on sn-devel-184

4 years agoctdb-scripts: Drop bit-rotted shellcheck directive
Martin Schwenke [Tue, 3 Sep 2019 05:24:52 +0000 (15:24 +1000)]
ctdb-scripts: Drop bit-rotted shellcheck directive

The code has changed so this is no longer needed.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-scripts: Silence shellcheck warning SC2166
Martin Schwenke [Mon, 2 Sep 2019 04:58:22 +0000 (14:58 +1000)]
ctdb-scripts: Silence shellcheck warning SC2166

This covers the following:

  SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.
  SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined.

POSIX agrees that -a and -o should not be used:

  https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html

Fixing these doesn't cause much churn.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-utils: CID 1273087 - Resource leak
Martin Schwenke [Wed, 3 Jul 2019 10:40:44 +0000 (20:40 +1000)]
ctdb-utils: CID 1273087 - Resource leak

Ensure that p is not leaked.

This is a test program and the program exits anyway.  No need to
backport.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-tools: Stop deleted nodes from influencing ctdb nodestatus exit code
Martin Schwenke [Tue, 13 Aug 2019 11:42:15 +0000 (21:42 +1000)]
ctdb-tools: Stop deleted nodes from influencing ctdb nodestatus exit code

Deleted nodes should simply be ignored.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14129
RN: Stop deleted nodes from influencing ctdb nodestatus exit code

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-tests: Put the summary file inside $TEST_VAR_DIR
Martin Schwenke [Wed, 4 Sep 2019 05:04:05 +0000 (15:04 +1000)]
ctdb-tests: Put the summary file inside $TEST_VAR_DIR

This means less random files dropped in /tmp or similar.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-tests: Drop run_tests -d option
Martin Schwenke [Wed, 4 Sep 2019 04:59:22 +0000 (14:59 +1000)]
ctdb-tests: Drop run_tests -d option

The usage message says it is dodgy and some test suites may not
support it.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-tests: Simplify setup_ctdb()
Martin Schwenke [Tue, 3 Sep 2019 09:12:45 +0000 (19:12 +1000)]
ctdb-tests: Simplify setup_ctdb()

There is no point inventing a whole new set of options here.

Continue to locally implement the --no-event-scripts option.  This
must be first, though in practice only one option is ever passed to
setup_ctdb() from ctdb_test_init().

Simply pass all other options through to "local_daemons.sh setup".
This has the side effect of causing failure when an invalid option is
passed.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-tests: Invert some logic so it makes sense
Martin Schwenke [Tue, 3 Sep 2019 07:54:29 +0000 (17:54 +1000)]
ctdb-tests: Invert some logic so it makes sense

The test should be outside the loop.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-tests: Avoid shellcheck warnings
Martin Schwenke [Thu, 5 Sep 2019 23:01:36 +0000 (09:01 +1000)]
ctdb-tests: Avoid shellcheck warnings

SC2086 Double quote to prevent globbing and word splitting

This one doesn't need the double quotes if it is contained within the
preceding variable expansion.

SC2181 Check exit code directly with e.g. 'if mycmd;', not indirectly with $?
SC2004 $/${} is unnecessary on arithmetic variables

These are straightforward.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-tests: Fix zero event scripts test so it tests something
Martin Schwenke [Tue, 3 Sep 2019 07:40:59 +0000 (17:40 +1000)]
ctdb-tests: Fix zero event scripts test so it tests something

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-tests: Drop unused code from onnode unit test ctdb stub
Martin Schwenke [Fri, 6 Sep 2019 10:03:36 +0000 (20:03 +1000)]
ctdb-tests: Drop unused code from onnode unit test ctdb stub

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-tests: Only set TEST_SUBDIR when needed
Martin Schwenke [Thu, 5 Sep 2019 05:51:08 +0000 (15:51 +1000)]
ctdb-tests: Only set TEST_SUBDIR when needed

This is only needed for setup_ctdb_base() so only set it when calling
this function.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-tests: Move NFS test functions to complex local script
Martin Schwenke [Thu, 5 Sep 2019 06:15:54 +0000 (16:15 +1000)]
ctdb-tests: Move NFS test functions to complex local script

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-tests: Don't run setup_ctdb_base() for real cluster
Martin Schwenke [Mon, 9 Sep 2019 06:58:06 +0000 (16:58 +1000)]
ctdb-tests: Don't run setup_ctdb_base() for real cluster

This has not been needed for some time.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-tests: Use db_ctdb_cattdb_count_records()
Martin Schwenke [Fri, 2 Aug 2019 06:18:32 +0000 (16:18 +1000)]
ctdb-tests: Use db_ctdb_cattdb_count_records()

Avoid reinventing the wheel.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-tests: Use ctdb_get_all_pnns()
Martin Schwenke [Mon, 16 Sep 2019 09:08:11 +0000 (19:08 +1000)]
ctdb-tests: Use ctdb_get_all_pnns()

The nested, arbitrary use of onnode can cause messages from ssh on
stderr to appear in the node list:

  Getting list of nodes...
  Output of "onnode -pq all ctdb pnn | grep '^[0-9][0-9]*$'":
  Warning: Permanently added '10.0.0.72' (RSA) to the list of known hosts.^M
  Warning: Permanently added '10.0.0.75' (RSA) to the list of known hosts.^M
  Warning: Permanently added '10.0.0.73' (RSA) to the list of known hosts.^M
  Warning: Permanently added '10.0.0.74' (RSA) to the list of known hosts.^M
  1
  0
  3
  2
  Create/wipe test database rec_test.tdb
  Failed to execute "Permanently added '10.0.0.72' (RSA) to the list of known hosts.^M ctdb attach rec_test.tdb" on node(s) "Warning:"
  Invalid <nodespec>

Avoid that by using an existing function that does not nest ssh uses.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agoctdb-tests: Drop reference to unused ctdb_eventd test directory
Martin Schwenke [Mon, 9 Sep 2019 06:04:36 +0000 (16:04 +1000)]
ctdb-tests: Drop reference to unused ctdb_eventd test directory

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
4 years agowhitespace: Conform to coding convention
Garming Sam [Wed, 11 Sep 2019 01:58:48 +0000 (13:58 +1200)]
whitespace: Conform to coding convention

Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Noel Power <npower@samba.org>
Autobuild-User(master): Noel Power <npower@samba.org>
Autobuild-Date(master): Fri Sep 13 12:33:32 UTC 2019 on sn-devel-184

4 years agoparam: Allow rpc server dynamic port range to roundtrip
Garming Sam [Wed, 11 Sep 2019 01:55:37 +0000 (13:55 +1200)]
param: Allow rpc server dynamic port range to roundtrip

Originally this parameter only set two other parameters, but never set
the original string. By setting the string as well, we can make it be
emitted by testparm -v correctly (instead of ''), and set it back as the
value for the parameter.

Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Noel Power <npower@samba.org>
4 years agos4:torture: fix file cleanup in smb2.create.delete
Ralph Wuerthner [Thu, 12 Sep 2019 09:16:50 +0000 (11:16 +0200)]
s4:torture: fix file cleanup in smb2.create.delete

Cleanup of test files created by smb2.create.delete is broken because
READONLY is set on the test file. Clear READONLY first before doing
the cleanup.

Signed-off-by: Ralph Wuerthner <ralph.wuerthner@de.ibm.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Thu Sep 12 17:36:50 UTC 2019 on sn-devel-184

4 years agos4:torture: fix closure of test directory handle
Ralph Wuerthner [Thu, 12 Sep 2019 09:18:51 +0000 (11:18 +0200)]
s4:torture: fix closure of test directory handle

Signed-off-by: Ralph Wuerthner <ralph.wuerthner@de.ibm.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agos4:torture: correctly cast printf() argument
Ralph Wuerthner [Thu, 12 Sep 2019 08:22:58 +0000 (10:22 +0200)]
s4:torture: correctly cast printf() argument

In most cases sattrib is passed as a long int literal. Avoid
compile errors by casting the value passed to printf().

Signed-off-by: Ralph Wuerthner <ralph.wuerthner@de.ibm.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: remove unused current_user.{need,done}_chdir stacking
Stefan Metzmacher [Tue, 16 Jul 2019 12:20:33 +0000 (14:20 +0200)]
smbd: remove unused current_user.{need,done}_chdir stacking

All become_*()/unbecome_*() functions don't alter the working
directory. Only change_to_user_and_service*() does.

Pair-Programmed-With: Ralph Boehme <slow@samba.org>

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Wed Sep 11 21:16:57 UTC 2019 on sn-devel-184

4 years agosmbd: inline change_to_user_internal() into change_to_user_and_service()
Stefan Metzmacher [Tue, 16 Jul 2019 12:11:22 +0000 (14:11 +0200)]
smbd: inline change_to_user_internal() into change_to_user_and_service()

There was only one caller left.

Pair-Programmed-With: Ralph Boehme <slow@samba.org>

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: rename [un]become_user*() to [un]become_user_without_service*()
Stefan Metzmacher [Fri, 19 Jul 2019 09:14:13 +0000 (11:14 +0200)]
smbd: rename [un]become_user*() to [un]become_user_without_service*()

We should make the behavior change (that gives up some protection)
more obvious, by changing the function names.

At least some OEMs have patches relying on the 4.9/4.10 behaviour
and we want them to detect that they have to do more work when they
need to change directories.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: remove directory changing from become_user*()
Stefan Metzmacher [Tue, 16 Jul 2019 12:06:09 +0000 (14:06 +0200)]
smbd: remove directory changing from become_user*()

This was the behavior in versions before 4.9 and
it is hopefully not required by current callers of
become_user*().

Pair-Programmed-With: Ralph Boehme <slow@samba.org>

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: inline change_to_user_and_service() into become_user()
Stefan Metzmacher [Tue, 16 Jul 2019 12:03:57 +0000 (14:03 +0200)]
smbd: inline change_to_user_and_service() into become_user()

In the next commit we'll drop the _and_service() part.

Pair-Programmed-With: Ralph Boehme <slow@samba.org>

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: inline change_to_user_by_session()
Ralph Boehme [Sat, 13 Jul 2019 14:38:02 +0000 (16:38 +0200)]
smbd: inline change_to_user_by_session()

Prepares for removing changing cwd from become_user*() in a subsequent commit.

Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>

Signed-off-by: Ralph Boehme <slow@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: README.Coding fixes
Ralph Boehme [Sat, 13 Jul 2019 14:10:53 +0000 (16:10 +0200)]
smbd: README.Coding fixes

Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>

Signed-off-by: Ralph Boehme <slow@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: rename change_to_user_by_fsp() to change_to_user_and_service_by_fsp()
Ralph Boehme [Sat, 13 Jul 2019 14:20:11 +0000 (16:20 +0200)]
smbd: rename change_to_user_by_fsp() to change_to_user_and_service_by_fsp()

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: rename change_to_user() to change_to_user_and_service()
Ralph Boehme [Sat, 13 Jul 2019 14:17:17 +0000 (16:17 +0200)]
smbd: rename change_to_user() to change_to_user_and_service()

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Enhance debugging if chdir fails
Volker Lendecke [Wed, 9 Jan 2019 16:24:57 +0000 (17:24 +0100)]
smbd: Enhance debugging if chdir fails

This helps admins to figure out which user has a problem

Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>

Signed-off-by: Volker Lendecke <vl@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agolib: Add "utok_string"
Volker Lendecke [Wed, 9 Jan 2019 16:04:34 +0000 (17:04 +0100)]
lib: Add "utok_string"

A terse, one-line unix token representation for debugging purposes

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agos3: VFS: Complete the replacement of SMB_VFS_MKDIR() -> SMB_VFS_MKDIRAT().
Jeremy Allison [Fri, 6 Sep 2019 23:01:20 +0000 (16:01 -0700)]
s3: VFS: Complete the replacement of SMB_VFS_MKDIR() -> SMB_VFS_MKDIRAT().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Autobuild-User(master): Ralph Böhme <slow@samba.org>
Autobuild-Date(master): Wed Sep 11 19:44:44 UTC 2019 on sn-devel-184

4 years agos3: VFS: vfs_time_audit. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:53:12 +0000 (15:53 -0700)]
s3: VFS: vfs_time_audit. Remove mkdir_fn(). No longer used.

NB, this will now fail smb_vfs_assert_all_fns()
until we remove the mkdir_fn() from the VFS definitions.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_full_audit. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:52:14 +0000 (15:52 -0700)]
s3: VFS: vfs_full_audit. Remove mkdir_fn(). No longer used.

NB, this will now fail smb_vfs_assert_all_fns()
until we remove the mkdir_fn() from the VFS definitions.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_xattr_tdb. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:50:58 +0000 (15:50 -0700)]
s3: VFS: vfs_xattr_tdb. Remove mkdir_fn(). No longer used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_unityed_media. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:50:19 +0000 (15:50 -0700)]
s3: VFS: vfs_unityed_media. Remove mkdir_fn(). No longer used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_syncops. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:49:37 +0000 (15:49 -0700)]
s3: VFS: vfs_syncops. Remove mkdir_fn(). No longer used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_snapper. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:49:01 +0000 (15:49 -0700)]
s3: VFS: vfs_snapper. Remove mkdir_fn(). No longer used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_shadow_copy2. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:48:20 +0000 (15:48 -0700)]
s3: VFS: vfs_shadow_copy2. Remove mkdir_fn(). No longer used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_media_harmony. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:47:40 +0000 (15:47 -0700)]
s3: VFS: vfs_media_harmony. Remove mkdir_fn(). No longer used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_linux_xfs_sgid. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:46:58 +0000 (15:46 -0700)]
s3: VFS: vfs_linux_xfs_sgid. Remove mkdir_fn(). No longer used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_glusterfs. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:46:08 +0000 (15:46 -0700)]
s3: VFS: vfs_glusterfs. Remove mkdir_fn(). No longer used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_extd_audit. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:45:25 +0000 (15:45 -0700)]
s3: VFS: vfs_extd_audit. Remove mkdir_fn(). No longer used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_ceph_snapshots. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:44:36 +0000 (15:44 -0700)]
s3: VFS: vfs_ceph_snapshots. Remove mkdir_fn(). No longer used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_ceph. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:43:50 +0000 (15:43 -0700)]
s3: VFS: vfs_ceph. Remove mkdir_fn(). No longer used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_catia. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:43:03 +0000 (15:43 -0700)]
s3: VFS: vfs_catia. Remove mkdir_fn(). No longer used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_cap. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:42:10 +0000 (15:42 -0700)]
s3: VFS: vfs_cap. Remove mkdir_fn(). No longer used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_audit. Remove mkdir_fn(). No longer used.
Jeremy Allison [Fri, 6 Sep 2019 22:10:38 +0000 (15:10 -0700)]
s3: VFS: vfs_audit. Remove mkdir_fn(). No longer used.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: smbd: Change mkdir_internal() to call SMB_VFS_MKDIRAT().
Jeremy Allison [Fri, 6 Sep 2019 22:05:36 +0000 (15:05 -0700)]
s3: smbd: Change mkdir_internal() to call SMB_VFS_MKDIRAT().

Use conn->cwd_fsp as current fsp.

No logic change for now.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: pysmbd: Change py_smbd_mkdir() to call SMB_VFS_MKDIRAT().
Jeremy Allison [Fri, 6 Sep 2019 22:03:50 +0000 (15:03 -0700)]
s3: pysmbd: Change py_smbd_mkdir() to call SMB_VFS_MKDIRAT().

Use conn->cwd_fsp as current fsp.

No logic change for now.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_virusfilter: Change use of SMB_VFS_NEXT_MKDIR -> SMB_VFS_NEXT_MKDIRAT.
Jeremy Allison [Fri, 6 Sep 2019 17:06:23 +0000 (10:06 -0700)]
s3: VFS: vfs_virusfilter: Change use of SMB_VFS_NEXT_MKDIR -> SMB_VFS_NEXT_MKDIRAT.

Use conn->cwd_fsp as current fsp.

No logic change for now.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_streams_depot: Change use of SMB_VFS_NEXT_MKDIR -> SMB_VFS_NEXT_MKDIRAT.
Jeremy Allison [Fri, 6 Sep 2019 17:02:27 +0000 (10:02 -0700)]
s3: VFS: vfs_streams_depot: Change use of SMB_VFS_NEXT_MKDIR -> SMB_VFS_NEXT_MKDIRAT.

Use conn->cwd_fsp as current fsp.

No logic change for now.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_recycle: Change use of SMB_VFS_NEXT_MKDIR -> SMB_VFS_NEXT_MKDIRAT.
Jeremy Allison [Fri, 6 Sep 2019 16:51:47 +0000 (09:51 -0700)]
s3: VFS: vfs_recycle: Change use of SMB_VFS_NEXT_MKDIR -> SMB_VFS_NEXT_MKDIRAT.

Use conn->cwd_fsp as current fsp.

No logic change for now.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: torture: Change cmd_mkdir to call SMB_VFS_MKDIRAT().
Jeremy Allison [Thu, 5 Sep 2019 18:27:42 +0000 (11:27 -0700)]
s3: torture: Change cmd_mkdir to call SMB_VFS_MKDIRAT().

Use conn->cwd_fsp as current fsp.

No logic change for now.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_xattr_tdb. Implement mkdirat().
Jeremy Allison [Thu, 5 Sep 2019 18:09:40 +0000 (11:09 -0700)]
s3: VFS: vfs_xattr_tdb. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_unityed_media. Implement mkdirat().
Jeremy Allison [Thu, 5 Sep 2019 18:08:05 +0000 (11:08 -0700)]
s3: VFS: vfs_unityed_media. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_time_audit. Implement mkdirat().
Jeremy Allison [Thu, 5 Sep 2019 18:03:29 +0000 (11:03 -0700)]
s3: VFS: vfs_time_audit. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_syncops. Implement mkdirat().
Jeremy Allison [Thu, 5 Sep 2019 17:40:04 +0000 (10:40 -0700)]
s3: VFS: vfs_syncops. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_snapper. Implement mkdirat().
Jeremy Allison [Thu, 5 Sep 2019 17:33:38 +0000 (10:33 -0700)]
s3: VFS: vfs_snapper. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_shadow_copy2. Implement mkdirat().
Jeremy Allison [Thu, 5 Sep 2019 17:32:18 +0000 (10:32 -0700)]
s3: VFS: vfs_shadow_copy2. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_media_harmony. Implement mkdirat().
Jeremy Allison [Thu, 5 Sep 2019 17:26:53 +0000 (10:26 -0700)]
s3: VFS: vfs_media_harmony. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_xfs_sgid. Implement mkdirat().
Jeremy Allison [Thu, 5 Sep 2019 17:15:18 +0000 (10:15 -0700)]
s3: VFS: vfs_xfs_sgid. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_glusterfs. Implement mkdirat().
Jeremy Allison [Thu, 5 Sep 2019 16:33:32 +0000 (09:33 -0700)]
s3: VFS: vfs_glusterfs. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_full_audit. Implement mkdirat().
Jeremy Allison [Wed, 4 Sep 2019 22:48:23 +0000 (15:48 -0700)]
s3: VFS: vfs_full_audit. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_extd_audit. Implement mkdirat().
Jeremy Allison [Wed, 4 Sep 2019 22:46:08 +0000 (15:46 -0700)]
s3: VFS: vfs_extd_audit. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_ceph_snapshots. Implement mkdirat().
Jeremy Allison [Wed, 4 Sep 2019 22:43:44 +0000 (15:43 -0700)]
s3: VFS: vfs_ceph_snapshots. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_ceph. Implement mkdirat().
Jeremy Allison [Wed, 4 Sep 2019 22:14:54 +0000 (15:14 -0700)]
s3: VFS: vfs_ceph. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_catia. Implement mkdirat().
Jeremy Allison [Wed, 4 Sep 2019 20:55:17 +0000 (13:55 -0700)]
s3: VFS: vfs_catia. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_cap. Implement mkdirat().
Jeremy Allison [Wed, 4 Sep 2019 20:53:43 +0000 (13:53 -0700)]
s3: VFS: vfs_cap. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: vfs_audit. Implement mkdirat().
Jeremy Allison [Wed, 4 Sep 2019 20:38:56 +0000 (13:38 -0700)]
s3: VFS: vfs_audit. Implement mkdirat().

Currently identical to mkdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: VFS: Add SMB_VFS_MKDIRAT().
Jeremy Allison [Wed, 4 Sep 2019 19:20:46 +0000 (12:20 -0700)]
s3: VFS: Add SMB_VFS_MKDIRAT().

Currently identical to SMB_VFS_MKDIR().

Next, add to all VFS modules that implement
mkdir and eventually remove mkdir.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: pysmbd: Ensure conn->cwd_fsp member of created connections is initialized.
Jeremy Allison [Fri, 6 Sep 2019 21:51:29 +0000 (14:51 -0700)]
s3: pysmbd: Ensure conn->cwd_fsp member of created connections is initialized.

This is needed to correctly call the XXXAT() vfs calls.

We should probably just use create_conn_struct_tos_cwd() here
and pass $cwd instead of using create_conn_struct_tos() and
passing "/" as the share root. We wouldn't change the current
working directory and the created share root would be set to $cwd
but I'm not sure what effects this may have on users of pysmbd
in case any of them pass paths above the $cwd to these functions.

Less changes to just call vfs_ChDir(conn, &cwd) which doesn't
change the current directory and leaves the share root as "/".

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3: torture: vfstest: Change from create_conn_struct_tos() -> create_conn_struct_tos_...
Jeremy Allison [Fri, 6 Sep 2019 21:05:43 +0000 (14:05 -0700)]
s3: torture: vfstest: Change from create_conn_struct_tos() -> create_conn_struct_tos_cwd().

This does a vfs_ChDir() to the share root (not changing the
directory) which correctly sets up the conn->cwd_fsp member
so any XXXAT() calls correctly work inside vfstest.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>