bbaumbach/samba-autobuild/.git
4 years agosmbdotconf: mark "add share command" with substitution="1"
Ralph Boehme [Mon, 4 Nov 2019 12:58:28 +0000 (13:58 +0100)]
smbdotconf: mark "add share command" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "addprinter command" with substitution="1"
Ralph Boehme [Mon, 4 Nov 2019 12:53:49 +0000 (13:53 +0100)]
smbdotconf: mark "addprinter command" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "addport command" with substitution="1"
Ralph Boehme [Mon, 4 Nov 2019 12:51:47 +0000 (13:51 +0100)]
smbdotconf: mark "addport command" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "add machine script" with substitution="1"
Ralph Boehme [Mon, 4 Nov 2019 11:49:10 +0000 (12:49 +0100)]
smbdotconf: mark "add machine script" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "add group script" with substitution="1"
Ralph Boehme [Mon, 4 Nov 2019 11:43:06 +0000 (12:43 +0100)]
smbdotconf: mark "add group script" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "abort shutdown script" with substitution="1"
Ralph Boehme [Thu, 31 Oct 2019 15:56:47 +0000 (16:56 +0100)]
smbdotconf: mark "abort shutdown script" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "volume" with substitution="1"
Ralph Boehme [Mon, 4 Nov 2019 11:33:55 +0000 (12:33 +0100)]
smbdotconf: mark "volume" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "veto oplock files" with substitution="1"
Ralph Boehme [Mon, 4 Nov 2019 11:30:58 +0000 (12:30 +0100)]
smbdotconf: mark "veto oplock files" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "veto files" with substitution="1"
Ralph Boehme [Mon, 4 Nov 2019 11:29:44 +0000 (12:29 +0100)]
smbdotconf: mark "veto files" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "root preexec" with substitution="1"
Ralph Boehme [Mon, 4 Nov 2019 11:20:21 +0000 (12:20 +0100)]
smbdotconf: mark "root preexec" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "root postexec" with substitution="1"
Ralph Boehme [Mon, 4 Nov 2019 11:19:24 +0000 (12:19 +0100)]
smbdotconf: mark "root postexec" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "printername" with substitution="1"
Ralph Boehme [Mon, 4 Nov 2019 11:14:34 +0000 (12:14 +0100)]
smbdotconf: mark "printername" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "preexec" with substitution="1"
Ralph Boehme [Mon, 4 Nov 2019 10:30:22 +0000 (11:30 +0100)]
smbdotconf: mark "preexec" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "postexec" with substitution="1"
Ralph Boehme [Mon, 4 Nov 2019 10:23:18 +0000 (11:23 +0100)]
smbdotconf: mark "postexec" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "path" with substitution="1"
Ralph Boehme [Thu, 31 Oct 2019 18:14:02 +0000 (19:14 +0100)]
smbdotconf: mark "path" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "msdfs proxy" with substitution="1"
Ralph Boehme [Thu, 31 Oct 2019 17:56:10 +0000 (18:56 +0100)]
smbdotconf: mark "msdfs proxy" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "magic script" with substitution="1"
Ralph Boehme [Thu, 31 Oct 2019 17:49:07 +0000 (18:49 +0100)]
smbdotconf: mark "magic script" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "magic output" with substitution="1"
Ralph Boehme [Thu, 31 Oct 2019 17:47:43 +0000 (18:47 +0100)]
smbdotconf: mark "magic output" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "hide files" with substitution="1"
Ralph Boehme [Thu, 31 Oct 2019 17:44:25 +0000 (18:44 +0100)]
smbdotconf: mark "hide files" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "force user" with substitution="1"
Ralph Boehme [Thu, 31 Oct 2019 17:40:53 +0000 (18:40 +0100)]
smbdotconf: mark "force user" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "force group" with substitution="1"
Ralph Boehme [Thu, 31 Oct 2019 16:56:56 +0000 (17:56 +0100)]
smbdotconf: mark "force group" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "dont descend" with substitution="1"
Ralph Boehme [Thu, 31 Oct 2019 16:51:06 +0000 (17:51 +0100)]
smbdotconf: mark "dont descend" with substitution="1"

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agosmbdotconf: mark "cups options" with substitution="1"
Stefan Metzmacher [Tue, 15 Oct 2019 14:54:45 +0000 (16:54 +0200)]
smbdotconf: mark "cups options" with substitution="1"

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agosmbdotconf: mark "dfree command" with substitution="1"
Stefan Metzmacher [Tue, 15 Oct 2019 14:54:45 +0000 (16:54 +0200)]
smbdotconf: mark "dfree command" with substitution="1"

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agosmbdotconf: mark "comment" with substitution="1"
Stefan Metzmacher [Tue, 15 Oct 2019 14:54:45 +0000 (16:54 +0200)]
smbdotconf: mark "comment" with substitution="1"

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agosmbdotconf: mark "aio write behind" with substitution="1"
Stefan Metzmacher [Tue, 15 Oct 2019 14:54:45 +0000 (16:54 +0200)]
smbdotconf: mark "aio write behind" with substitution="1"

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agoparam: add FN_{GLOBAL,LOCAL}_SUBSTITUTED_STRING support
Stefan Metzmacher [Tue, 15 Oct 2019 14:52:30 +0000 (16:52 +0200)]
param: add FN_{GLOBAL,LOCAL}_SUBSTITUTED_STRING support

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

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Ralph Boehme <slow@samba.org>
4 years agos3:parm: remove unused lp_parm_talloc_string()
Stefan Metzmacher [Tue, 15 Oct 2019 12:05:24 +0000 (14:05 +0200)]
s3:parm: remove unused lp_parm_talloc_string()

Callers should use lp_parm_substituted_string()
directly or just use lp_parm_const_string().

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3:vfs_glusterfs: make use of lp_parm_substituted_string()
Stefan Metzmacher [Tue, 15 Oct 2019 12:04:27 +0000 (14:04 +0200)]
s3:vfs_glusterfs: make use of lp_parm_substituted_string()

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3:vfs_nfs4acl_xattr: make use of lp_parm_substituted_string()
Stefan Metzmacher [Tue, 15 Oct 2019 12:00:29 +0000 (14:00 +0200)]
s3:vfs_nfs4acl_xattr: make use of lp_parm_substituted_string()

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3:vfs_streams_depot: make use of lp_parm_substituted_string()
Stefan Metzmacher [Tue, 15 Oct 2019 11:58:48 +0000 (13:58 +0200)]
s3:vfs_streams_depot: make use of lp_parm_substituted_string()

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3:vfs_tsmsm: make use of lp_parm_substituted_string()
Stefan Metzmacher [Tue, 15 Oct 2019 11:56:44 +0000 (13:56 +0200)]
s3:vfs_tsmsm: make use of lp_parm_substituted_string()

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3:mdssvc: make use of lp_parm_const_string()
Stefan Metzmacher [Tue, 15 Oct 2019 11:38:16 +0000 (13:38 +0200)]
s3:mdssvc: make use of lp_parm_const_string()

We don't need any substitution for elasticsearch options.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3:param: split out lp_parm_substituted_string()
Stefan Metzmacher [Tue, 15 Oct 2019 10:29:08 +0000 (12:29 +0200)]
s3:param: split out lp_parm_substituted_string()

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3:param: split out loadparm_s3_global_substitution from lp_string()
Stefan Metzmacher [Tue, 15 Oct 2019 10:07:17 +0000 (12:07 +0200)]
s3:param: split out loadparm_s3_global_substitution from lp_string()

The idea is to get rid of the global state that's
currently used for the substitution in lp_string().

In the end all callers need to pass an explicit
const struct loadparm_substitution *sub_ctx,
which contains all relevant information
for the substitution. At that point lp_string() can be removed.

For now we provide loadparm_s3_global_substitution()
for callers to keep the current bahavior unchanged.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agolib/param: introduce loadparm_substitution infrastructure
Ralph Boehme [Wed, 6 Nov 2019 15:25:00 +0000 (16:25 +0100)]
lib/param: introduce loadparm_substitution infrastructure

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

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Ralph Boehme <slow@samba.org>
4 years agos3:param: rename lp_string() argument ctx to mem_ctx
Ralph Boehme [Thu, 31 Oct 2019 14:12:35 +0000 (15:12 +0100)]
s3:param: rename lp_string() argument ctx to mem_ctx

Minimizes diff of subsequent patch.

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
4 years agos3:lib: remove unused str_list_substitute()
Stefan Metzmacher [Tue, 15 Oct 2019 08:15:41 +0000 (10:15 +0200)]
s3:lib: remove unused str_list_substitute()

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agos3:lib: remove unused str_list_sub_basic()
Stefan Metzmacher [Tue, 15 Oct 2019 08:15:14 +0000 (10:15 +0200)]
s3:lib: remove unused str_list_sub_basic()

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
4 years agonet: Delete share ACL from 'net conf delshare'
Christof Schmitt [Wed, 20 Nov 2019 18:39:20 +0000 (11:39 -0700)]
net: Delete share ACL from 'net conf delshare'

Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Tue Nov 26 22:55:38 UTC 2019 on sn-devel-184

4 years agoselftest: Add test for 'net conf delshare' also removing share ACL
Christof Schmitt [Tue, 26 Nov 2019 16:59:15 +0000 (09:59 -0700)]
selftest: Add test for 'net conf delshare' also removing share ACL

Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agoselftest: Make net command available in sharesec test
Christof Schmitt [Tue, 26 Nov 2019 16:58:32 +0000 (09:58 -0700)]
selftest: Make net command available in sharesec test

Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosharesec: Return NTSTATUS from delete_share_security
Christof Schmitt [Wed, 18 Sep 2019 20:37:32 +0000 (13:37 -0700)]
sharesec: Return NTSTATUS from delete_share_security

Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosharesec: Return NTSTATUS from set_share_security
Christof Schmitt [Wed, 18 Sep 2019 20:20:35 +0000 (13:20 -0700)]
sharesec: Return NTSTATUS from set_share_security

Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosharesec: Return NTSTATUS from share_info_db_init
Christof Schmitt [Tue, 17 Sep 2019 19:11:59 +0000 (12:11 -0700)]
sharesec: Return NTSTATUS from share_info_db_init

Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agog_lock: Speed up sync g_lock_lock()
Volker Lendecke [Fri, 22 Nov 2019 11:02:22 +0000 (12:02 +0100)]
g_lock: Speed up sync g_lock_lock()

The comment "this is used in very hot code paths" is not true right now, but
will get true soon....

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agog_lock: Move a variable inside the block were it's used
Volker Lendecke [Fri, 22 Nov 2019 10:56:55 +0000 (11:56 +0100)]
g_lock: Move a variable inside the block were it's used

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agog_lock: Factor out g_lock_cleanup_shared()
Volker Lendecke [Fri, 22 Nov 2019 10:55:52 +0000 (11:55 +0100)]
g_lock: Factor out g_lock_cleanup_shared()

This function will find a second user soon

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agos3:winbind: Also set the cmd name for bool dispatch table
Guenther Deschner [Tue, 26 Nov 2019 12:10:47 +0000 (13:10 +0100)]
s3:winbind: Also set the cmd name for bool dispatch table

Signed-off-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Tue Nov 26 14:14:51 UTC 2019 on sn-devel-184

4 years agos3:winbind: Print priv pipe location
Andreas Schneider [Tue, 26 Nov 2019 11:45:24 +0000 (12:45 +0100)]
s3:winbind: Print priv pipe location

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
4 years agogitignore: Add .build.log
Andreas Schneider [Tue, 26 Nov 2019 12:32:53 +0000 (13:32 +0100)]
gitignore: Add .build.log

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
4 years agotorture: Test g_lock deadlock detection
Volker Lendecke [Wed, 20 Nov 2019 15:03:37 +0000 (16:03 +0100)]
torture: Test g_lock deadlock detection

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Sat Nov 23 01:25:12 UTC 2019 on sn-devel-184

4 years agolib: Change the g_lock data model
Volker Lendecke [Tue, 19 Nov 2019 16:29:18 +0000 (17:29 +0100)]
lib: Change the g_lock data model

Now we have one fixed field for the exclusive lock holder and an array
of shared locks. This way we now prioritize writers over readers: If a
pending write comes in while readers are active, it will put itself
into the exclusive slot. Then it waits for the readers to vanish. Only
when all readers are gone the exclusive lock request is granted. New
readers will just look at the exclusive slot and see it's taken. They
will then line up as watchers, retrying whenever things change.

This also means that it will be cheaper to support many shared locks:
Granting a shared lock just means to extend the array. We don't have
to walk the array for possible conflicts.

This also adds explicit UPGRADE and DOWNGRADE operations for better
error checking.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agolib: Add g_lock_ctx_init_backend()
Volker Lendecke [Tue, 5 Nov 2019 15:36:44 +0000 (16:36 +0100)]
lib: Add g_lock_ctx_init_backend()

This will allow using the g_lock.c logic on other databases as well

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agotorture: g_lock will allow duplicate READ locks soon
Volker Lendecke [Mon, 28 Oct 2019 12:50:09 +0000 (13:50 +0100)]
torture: g_lock will allow duplicate READ locks soon

In the future, g_lock will not check for duplicate READ locks anymore,
as there might be many of them and the check might be expensive

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agolib: Make struct g_lock_rec private to g_lock.c
Volker Lendecke [Tue, 19 Nov 2019 14:31:57 +0000 (15:31 +0100)]
lib: Make struct g_lock_rec private to g_lock.c

This is no longer exposed in the API

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agog_lock: Change prototype of g_lock_dump
Volker Lendecke [Fri, 25 Oct 2019 11:35:39 +0000 (13:35 +0200)]
g_lock: Change prototype of g_lock_dump

Soon the g_lock database format will change. There will be one
exclusive entry and an array of shared entries. In that format,
there's no need to attach a lock_type to each entry in the g_lock
database. Reflect this change in the g_lock_dump API

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Remove share_mode_data->record
Volker Lendecke [Mon, 4 Nov 2019 12:13:02 +0000 (13:13 +0100)]
smbd: Remove share_mode_data->record

In the future, there won't be a record anymore

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Pass the db_record down to share_mode_data_store()
Volker Lendecke [Mon, 4 Nov 2019 12:10:54 +0000 (13:10 +0100)]
smbd: Pass the db_record down to share_mode_data_store()

Remove a dependency on share_mode_data->record

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Use share_mode_watch_send()
Volker Lendecke [Mon, 4 Nov 2019 12:06:20 +0000 (13:06 +0100)]
smbd: Use share_mode_watch_send()

This removes some dependencies on share_mode_data->record

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agosmbd: Add share_mode_watch_send/recv
Volker Lendecke [Mon, 4 Nov 2019 11:57:35 +0000 (12:57 +0100)]
smbd: Add share_mode_watch_send/recv

For now this is a simple wrapper around dbwrap_watched_watch_send()
that will make the direct db_record reference in struct
share_mode_data unnecessary.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agodbwrap_watch: Don't store in-RAM caches
Volker Lendecke [Mon, 18 Nov 2019 20:46:55 +0000 (21:46 +0100)]
dbwrap_watch: Don't store in-RAM caches

The history of this file is a mess with lots of bugs. Most of the bugs
I believe are based on the cache of database contents we maintain in
struct dbwrap_watch_rec. This patch removes that cache and does all
modifications directly in the backend database.

This means we have to mess with the database format in a few more
places, but I think the format is simple enough that this does not
really hurt.

I tried for a few days to split this up into small pieces that are
easier to understand, but every time I separated out individual chunks
I found difficult to track down bugs that are all resolved in the
final code presented here. It's more lines of code, but I hope it's more
robust.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agodbwrap_watch: Simplify struct dbwrap_watched_watch_state
Volker Lendecke [Mon, 18 Nov 2019 12:43:13 +0000 (13:43 +0100)]
dbwrap_watch: Simplify struct dbwrap_watched_watch_state

With the wakeup messages changed, we don't need to store what used to
be the old message in the struct dbwrap_watched_watch_state
anymore. We still need to store the key that is watched for removal of
our watch entry in the request destructor

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agodbwrap_watch: Simplify the wakeup messages
Volker Lendecke [Mon, 18 Nov 2019 12:36:58 +0000 (13:36 +0100)]
dbwrap_watch: Simplify the wakeup messages

The instance ID per process globally identifies a watch instance
across databases. It's not necessary to send the database ID and the
watched key across, the uin64_t instance ID is sufficient.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agodbwrap_watch: Add a uin64_t instance to watchers
Volker Lendecke [Mon, 18 Nov 2019 12:23:52 +0000 (13:23 +0100)]
dbwrap_watch: Add a uin64_t instance to watchers

Initially used for debugging purposes only

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agodbwrap_watch: Encapsulate watchers in "struct dbwrap_watcher"
Volker Lendecke [Mon, 18 Nov 2019 11:37:21 +0000 (12:37 +0100)]
dbwrap_watch: Encapsulate watchers in "struct dbwrap_watcher"

Next patch will extend this structure

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agodbwrap_watch: Prevent two watchers per fetch_locked sequence
Volker Lendecke [Sun, 17 Nov 2019 15:45:45 +0000 (16:45 +0100)]
dbwrap_watch: Prevent two watchers per fetch_locked sequence

This can lead to very confusing bugs, and the code right now does not
deal with it well.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agotorture3: Test the next patch: No two waiters in one do_locked()
Volker Lendecke [Sat, 16 Nov 2019 12:20:14 +0000 (13:20 +0100)]
torture3: Test the next patch: No two waiters in one do_locked()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agotorture3: Consolidate dbwrap_watch test initialization
Volker Lendecke [Sat, 16 Nov 2019 11:41:13 +0000 (12:41 +0100)]
torture3: Consolidate dbwrap_watch test initialization

More lines, but less error-prone copy&paste

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agodbwrap: Don't set rec->value in dbwrap_do_locked()
Volker Lendecke [Wed, 23 Oct 2019 10:19:38 +0000 (12:19 +0200)]
dbwrap: Don't set rec->value in dbwrap_do_locked()

We pass that via the callback now

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agolocking: Remove a call to dbwrap_record_get_value()
Volker Lendecke [Sun, 17 Nov 2019 13:50:51 +0000 (14:50 +0100)]
locking: Remove a call to dbwrap_record_get_value()

This makes a copy of the record values TDB_DATA.

In this case, it is okay: We only do a dbwrap_record_storev modifying
the value that we retrieved from the share_mode_lock destructor.

This patch is necessary because the next commit will make the "value"
argument to the dbwrap_do_locked() callback the only source of the
record value. Thus for a nested share_mode_do_locked() call we have to
maintain the record value explicitly.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agodbwrap: Protect against invalid db_record->value
Volker Lendecke [Thu, 24 Oct 2019 14:41:47 +0000 (16:41 +0200)]
dbwrap: Protect against invalid db_record->value

After dbwrap_record_storev()/delete(), dbwrap_record_get_value()
information is stale. Assert on the attempt to re-fetch data after it
became stale. This can't protect against someone copying the result
from dbwrap_record_get_value() somewhere else, but it's better than
nothing.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agovfs: Use dbwrap_do_locked() in vfs_offload_token_db_store_fsp()
Volker Lendecke [Wed, 9 Oct 2019 14:02:32 +0000 (16:02 +0200)]
vfs: Use dbwrap_do_locked() in vfs_offload_token_db_store_fsp()

Less malloc

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agovfs: Use dbwrap_parse_record() in vfs_offload_token_db_fetch_fsp()
Volker Lendecke [Wed, 9 Oct 2019 13:13:05 +0000 (15:13 +0200)]
vfs: Use dbwrap_parse_record() in vfs_offload_token_db_fetch_fsp()

Less malloc

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agog_lock: Pass "data" down to g_lock_trylock()
Volker Lendecke [Wed, 23 Oct 2019 09:21:16 +0000 (11:21 +0200)]
g_lock: Pass "data" down to g_lock_trylock()

Avoid a call to dbwrap_record_get_value(), dbwrap_do_locked() already
gave us the value.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agodbwrap: Pass "value" to dbwrap_do_locked() callback
Volker Lendecke [Wed, 23 Oct 2019 09:34:47 +0000 (11:34 +0200)]
dbwrap: Pass "value" to dbwrap_do_locked() callback

I want to reduce dbwrap_record_get_value(). It makes the caller believe it can
make a copy of the TDB_DATA returned and that the value remains constant. It's
not, as you can always do a dbwrap_record_store().

This patch removes one requirement for getting the value out of a
db_record via dbwrap_record_get_value(). You can still make a copy, but from an
API perspective to me it's more obvious that "value" as a parameter to the
callback has a limited lifetime.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agodbwrap_tdb: Return correct error from db_tdb_storev()
Volker Lendecke [Wed, 9 Oct 2019 15:17:07 +0000 (17:17 +0200)]
dbwrap_tdb: Return correct error from db_tdb_storev()

Don't lose information to NT_STATUS_UNSUCCESSFUL

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agodbwrap_tdb: Avoid includes.h
Volker Lendecke [Wed, 16 Oct 2019 13:29:28 +0000 (15:29 +0200)]
dbwrap_tdb: Avoid includes.h

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
4 years agos3:printing: Use httpConnect2 from CUPS
Andreas Schneider [Wed, 20 Nov 2019 10:27:10 +0000 (11:27 +0100)]
s3:printing: Use httpConnect2 from CUPS

This fixes deprecation warnings.

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Fri Nov 22 19:54:55 UTC 2019 on sn-devel-184

4 years agobuild: Do not build selftest binaries for builds without --enable-selftest
Andrew Bartlett [Thu, 21 Nov 2019 21:06:57 +0000 (10:06 +1300)]
build: Do not build selftest binaries for builds without --enable-selftest

Add new for_selftest option to SAMBA_BINARY() and SAMBA3_BINARY()

This allows us to be much more consistent (at least in the core Samba)
and documents clearly why the binary should not be installed.

Not modified are
 - test_lp_load
 - notifyd-tests
 - gendrandperf
 - test* from examples/libsmbclient
 - dbwrap_torture
 - split_tokens
 - locktest2
 - msgtest
 - msg_sink
 - msg_source
 - versiontest
 - rpc_open_tcp
 - test_headers

As these are not tested in selftest so any change would also be
untested.  Of course they probably should be added in a different
MR.

Also not modified (because they are not tests, nor part of the
build system) are:
 - smb2mount
 - notifydd
 - log2pacp
 - debug2html
 - smbfilter
 - destroy_netlogon_creds_cli
 - spotlight2*
 - tevent_glib_tracker

These do however appear to be untested.

For now, the source4 forked client tools are left unchanged:
 - smbclient4
 - nmblookup4

Finally, the heimdal binaries are left as install=False as
they are either part of the build system or end-user tools
that we just don't want to install.  These are however tested.

The motivation is commit like c34ec003b7d45aa4196ff93a0ac29694b25e5309
and da87fa998ab71328f30bcdf5b41aee8675aee48a, which are both totally
correct but are not needed if the selftest is not run on MacOS.

There are likely other platforms or build environments where building
our test binaries is more pain than valuable, see for example also
https://lists.samba.org/archive/samba/2019-November/227137.html

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Isaac Boukris <iboukris@samba.org>
Autobuild-User(master): Isaac Boukris <iboukris@samba.org>
Autobuild-Date(master): Fri Nov 22 11:48:59 UTC 2019 on sn-devel-184

4 years agolib/fuzzing: Add oss-fuzz info to README.md
Andrew Bartlett [Wed, 20 Nov 2019 21:21:54 +0000 (10:21 +1300)]
lib/fuzzing: Add oss-fuzz info to README.md

Note that Samba has not been accepted yet, but will be soon once some requirements
are addressed per:

https://github.com/google/oss-fuzz/pull/2993

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Uri Simchoni <uri@samba.org>
Autobuild-User(master): Douglas Bagnall <dbagnall@samba.org>
Autobuild-Date(master): Thu Nov 21 00:45:33 UTC 2019 on sn-devel-184

4 years agolib/fuzzing/oss-fuzz: copy required libraries to the build target
Andrew Bartlett [Thu, 7 Nov 2019 01:22:07 +0000 (14:22 +1300)]
lib/fuzzing/oss-fuzz: copy required libraries to the build target

This is an alternative to static linking as we do not have static source
libraries for all the things we depend on.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Uri Simchoni <uri@samba.org>
4 years agolib/fuzzing/oss-fuzz: Install chrpath as we use it in the build.sh script to set...
Andrew Bartlett [Thu, 7 Nov 2019 04:17:40 +0000 (17:17 +1300)]
lib/fuzzing/oss-fuzz: Install chrpath as we use it in the build.sh script to set -rpath

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Uri Simchoni <uri@samba.org>
4 years agolib/fuzzing/oss-fuzz: Add build_image.sh using Samba's bootstrap tools
Douglas Bagnall [Wed, 20 Nov 2019 20:59:24 +0000 (09:59 +1300)]
lib/fuzzing/oss-fuzz: Add build_image.sh using Samba's bootstrap tools

Google's oss-fuzz environment is Ubuntu 16.04 based so we can
just use the maintained bootstrap system rather than a manual
package list here that will get out of date.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Uri Simchoni <uri@samba.org>
Pair-programmed-by: Andrew Bartlett <abartlet@samba.org>
4 years agolib/fuzzing/oss-fuzz: add stub build.sh that will not change often
Andrew Bartlett [Wed, 20 Nov 2019 21:29:57 +0000 (10:29 +1300)]
lib/fuzzing/oss-fuzz: add stub build.sh that will not change often

This makes local development of build_samba.sh easier as it will remain in the source tree.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Uri Simchoni <uri@samba.org>
4 years agolib/fuzzing/oss-fuzz: Add build_samba.sh for oss-fuzz
Andrew Bartlett [Wed, 20 Nov 2019 01:03:13 +0000 (14:03 +1300)]
lib/fuzzing/oss-fuzz: Add build_samba.sh for oss-fuzz

We work hard to put the primary logic for oss-fuzz here, and
where possible into waf, so that only a tiny stub needs to
be maintained in the Google oss-fuzz repo.

This will be called by build.sh (not copied directly because
it is too easy to forget to copy in an updated version when
doing development in the docker image).

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Uri Simchoni <uri@samba.org>
4 years agolib/fuzzing: Use --fuzz-target-ldflags if specified
Andrew Bartlett [Tue, 5 Nov 2019 23:24:18 +0000 (12:24 +1300)]
lib/fuzzing: Use --fuzz-target-ldflags if specified

This makes integration with oss-fuzz possible.  Only the fuzzer binaries should be
linked with libFuzzer, not things like asn1_compile, so this can not be done via
the global ADDITIONAL_LDFLAGS.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Uri Simchoni <uri@samba.org>
4 years agobuild: Set fuzzer=True on fuzzer binaries
Douglas Bagnall [Fri, 1 Nov 2019 04:18:24 +0000 (17:18 +1300)]
build: Set fuzzer=True on fuzzer binaries

This ensures that the binaries are the only binaries built
when configured for fuzzing.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Uri Simchoni <uri@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
4 years agos4:rpc_server: Return the status code from dcesrv_transport_session_key()
Andreas Schneider [Fri, 15 Nov 2019 12:34:08 +0000 (13:34 +0100)]
s4:rpc_server: Return the status code from dcesrv_transport_session_key()

Normally this returns the right status code, which normally is:

   NT_STATUS_NO_USER_SESSION_KEY

This is consitent with the source3 samr server implmentation.

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Isaac Boukris <iboukris@samba.org>
Autobuild-User(master): Isaac Boukris <iboukris@samba.org>
Autobuild-Date(master): Wed Nov 20 22:29:35 UTC 2019 on sn-devel-184

4 years agovfs: Fix a typo
Volker Lendecke [Wed, 20 Nov 2019 10:08:06 +0000 (11:08 +0100)]
vfs: Fix a typo

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Autobuild-User(master): Ralph Böhme <slow@samba.org>
Autobuild-Date(master): Wed Nov 20 15:23:10 UTC 2019 on sn-devel-184

4 years agolibrpc: Check for NULL pointer in value() in ntlmssp_AUTHENTICATE
Andrew Bartlett [Tue, 19 Nov 2019 04:38:50 +0000 (17:38 +1300)]
librpc: Check for NULL pointer in value() in ntlmssp_AUTHENTICATE

This allows ndrdump --validate to avoid following a NULL pointer when re-pushing
a valid but unusual input.

It also avoids an issue if the Samba server code were to provide a response
without an EncryptedRandomSessionKey.

At this stage ntlmssp.idl is not used for this, instead the packets are
generated with msrpc_gen().

Found by Douglas Bagnall using Hongfuzz and the new fuzz_ndr_X
fuzzer.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Wed Nov 20 06:06:29 UTC 2019 on sn-devel-184

4 years agoselftest: Test repushing an ntlmssp AUTHENTICATE_MESSAGE
Andrew Bartlett [Tue, 19 Nov 2019 23:14:52 +0000 (12:14 +1300)]
selftest: Test repushing an ntlmssp AUTHENTICATE_MESSAGE

This demonstrates a bug found by Douglas Bagnall using Hongfuzz and the new fuzz_ndr_X
fuzzer where the value() evaluatuion could segfault if it was made to follow a NULL
pointer.

This also demonstrates that the --base64 mode works on file inputs.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
4 years agoselftest: Confirm that NDR bugs are fixed in DCOM code
Andrew Bartlett [Tue, 19 Nov 2019 22:40:51 +0000 (11:40 +1300)]
selftest: Confirm that NDR bugs are fixed in DCOM code

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 <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
4 years agopidl: check the size of pulled arrays of arrays
Douglas Bagnall [Wed, 30 Oct 2019 20:35:19 +0000 (09:35 +1300)]
pidl: check the size of pulled arrays of arrays

We were accidentally checking the memory just past the array instead of
checking each member.

This could have led to the size of some arrays not being checked.

Found by Michael Hanselmann using Honggfuzz and an fuzzer for Samba's
NDR layer.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Pair-programmed-with: Andrew Bartlett <abartlet@samba.org>
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
4 years agondr_orpc: properly allocate empty DUALSTRINGARRAY
Douglas Bagnall [Wed, 30 Oct 2019 02:02:49 +0000 (15:02 +1300)]
ndr_orpc: properly allocate empty DUALSTRINGARRAY

When there is no data we still need to allocate for the terminating NULL.

Found by Michael Hanselmann using Honggfuzz and an fuzzer for Samba's
NDR layer.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
4 years agoselftest: Confirm that --base64-input and --input work and a PIDL bug is fixed.
Andrew Bartlett [Tue, 19 Nov 2019 21:56:14 +0000 (10:56 +1300)]
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 <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
4 years agopython: Return the stdout when also checking error codes
Andrew Bartlett [Tue, 19 Nov 2019 21:55:18 +0000 (10:55 +1300)]
python: Return the stdout when also checking error codes

This will aid in checking that ndrdump behaves as expected when
failing to parse

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
4 years agondrdump: Still print --dump bytes after parse failure
Andrew Bartlett [Tue, 19 Nov 2019 21:45:02 +0000 (10:45 +1300)]
ndrdump: Still print --dump bytes after parse failure

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
4 years agondrdump: Invert sense of --stop-on-parse-failure into --print-after-parse-failure
Andrew Bartlett [Wed, 20 Nov 2019 00:26:11 +0000 (13:26 +1300)]
ndrdump: Invert sense of --stop-on-parse-failure into --print-after-parse-failure

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
4 years agondrdump: Return a different error code for ndr_pull() failures
Andrew Bartlett [Tue, 19 Nov 2019 21:39:54 +0000 (10:39 +1300)]
ndrdump: Return a different error code for ndr_pull() failures

This may assist in distinguishing between "runner" and "pull" failures.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>