]> git.ipfire.org Git - thirdparty/samba.git/log
thirdparty/samba.git
23 months agopidl:Wireshark Get rid of Boolean "flags" with no bit set
John Thacker [Tue, 25 Jun 2024 22:37:28 +0000 (18:37 -0400)] 
pidl:Wireshark Get rid of Boolean "flags" with no bit set

Picked from Wireshark's fork:

    commit 5ae9af9e50c89d8700e5a166a9c345fc46b3a4ca
    Author: Guy Harris <guy@alum.mit.edu>
    Date:   Sun Nov 6 11:02:51 2016 -0800

        Get rid of Boolean "flags" that don't have any bit set.

        And tweak the Pidl generator for Wireshark not to generate "flags" like
        that.

        (The generator also does field name and true/false strings' case
        differently, so I didn't use it to regenerate the dissectors; that needs
        to be looked at.)

        Change-Id: Ie1657a782ebdb107e58792cedd29bbaa79b17bd4
        Reviewed-on: https://code.wireshark.org/review/18695
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Signed-off-by: John Thacker <johnthacker@gmail.com>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
23 months agopidl:Wireshark Fix array of pointers NULL termination
John Thacker [Tue, 25 Jun 2024 22:31:39 +0000 (18:31 -0400)] 
pidl:Wireshark Fix array of pointers NULL termination

Picked from Wireshark's PIDL fork:

    commit c07fd447c362099b04eedb445e8fa469643403f7
    Author: Binh Trinh <beango@gmail.com>
    Date:   Fri Jun 17 21:46:11 2016 -0400

        DCE/RPC: fix array of pointers with NULL

        Change-Id: Ie89f8fd4ec744d427d41866206d5a6784c5b224f
        Reviewed-on: https://code.wireshark.org/review/16004
        Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Signed-off-by: John Thacker <johnthacker@gmail.com>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
23 months agopidl:Wireshark Use proto_tree_add_bitmask_with_flags
John Thacker [Tue, 25 Jun 2024 22:30:22 +0000 (18:30 -0400)] 
pidl:Wireshark Use proto_tree_add_bitmask_with_flags

Picked from the Wireshark fork:

    commit 9a5e6a6884b2369527638fecd49c4c58d8c10378
    Author: Michael Mann <mmann78@netscape.net>
    Date:   Wed Jun 15 15:35:51 2016 -0400

        DCE/RPC proto_tree_add_boolean -> proto_tree_add_bitmask_with_flags

        Change-Id: I8891ec90244ffd9609d8443df631a7c8e6453b7e
        Reviewed-on: https://code.wireshark.org/review/15942
        Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Signed-off-by: John Thacker <johnthacker@gmail.com>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
23 months agocmdline:burn: add a note about short option combinations
Douglas Bagnall [Tue, 2 Jul 2024 23:50:43 +0000 (11:50 +1200)] 
cmdline:burn: add a note about short option combinations

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agocmdline:burn: explicitly burn --username
Douglas Bagnall [Tue, 2 Jul 2024 23:23:36 +0000 (11:23 +1200)] 
cmdline:burn: explicitly burn --username

This is the long form of -U in samba-tool.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agocmdline:burn: use allowlist to ensure more passwords burn
Douglas Bagnall [Sat, 29 Jun 2024 01:44:46 +0000 (13:44 +1200)] 
cmdline:burn: use allowlist to ensure more passwords burn

We treat any option containing 'pass' with suspicion, unless we know it
is OK.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agocmdline: test_cmdline tests more burning
Douglas Bagnall [Sat, 29 Jun 2024 01:43:03 +0000 (13:43 +1200)] 
cmdline: test_cmdline tests more burning

We have more secret arguments, like --client-password, --adminpass,
so we are going to use an allowlist for options containing 'pass', but
we don't want to burn the likes of --group=passionfruit.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agocmdline:burn: do not burn options starting --user-*, --password-*
Douglas Bagnall [Fri, 28 Jun 2024 23:30:19 +0000 (11:30 +1200)] 
cmdline:burn: do not burn options starting --user-*, --password-*

We have options that start with --user or --password that we don't
want to burn. Some grepping says:

      2 --user1
      1 --user2
     10 --user-allowed-to-authenticate-from
      6 --user-allowed-to-authenticate-to
      2 --user-allow-ntlm-auth
     25 --user-authentication-policy
      1 --user-config
      4 --user-domgroups
      5 --user-ext-name
      2 --user-groups
      6 --user-info
     27 --username
      1 --username2
      2 --userou
      1 --users
      2 --user-sidinfo
      6 --user-sids
     14 --user-tgt-lifetime-mins
      2 --password2
    118 --password-file
      2 --password-from-stdin
      # from here, grepping for strings around POPT_ constants
      5 "user"
      2 "user1"
      2 "user2"
      1 "userd"
      1 "user-domgroups"
      1 "user-groups"
      1 "user-info"
      2 "username"
      1 "user-sidinfo"
      1 "user-sids"
      1 passwordd
      4 "password"

Not all of these use lib/cmdline, but I think most do, via Python
which defers to cmdline_burn().

Note that there are options we should burn that aren't on this list,
like --adminpass. That's another matter.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agocmdline:burn: localise some variables
Douglas Bagnall [Thu, 27 Jun 2024 04:33:16 +0000 (16:33 +1200)] 
cmdline:burn: localise some variables

As this function increases in complexity, it helps to keep things close.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agocmdline:burn: always return true if burnt
Douglas Bagnall [Thu, 27 Jun 2024 04:03:30 +0000 (16:03 +1200)] 
cmdline:burn: always return true if burnt

Before we have been trying to cram three cases into a boolean return
value:

 * cmdline had secrets, we burnt them       ->  true
 * cmdline had no secrets, all good         ->  false
 * cmdline has NULL string, WTF! emergency! ->  false

This return value is only used by Python which wants to know whether to
go to the trouble of replacing the command line. If samba_cmdline_burn()
returns false, no action is taken.

If samba_cmdline_burn() burns a password and then hits a NULL, it would
be better not to do nothing. It would be better to crash. And that is
what Python will end up doing, by some talloc returning NULL triggering
a MemoryError.

What about the case like {"--foo", NULL, "-Ua%b"} where the secret comes
after the NULL? That will still be ignored by Python, as it is by all C
tools, but we are hoping that can't happen anyway.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agocmdline:burn: handle arguments separated from their --options
Douglas Bagnall [Thu, 27 Jun 2024 03:40:16 +0000 (15:40 +1200)] 
cmdline:burn: handle arguments separated from their --options

We weren't treating "--password secret" the same as "--password=secret",
which sometimes led to secrets not being redacted.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agocmdline:burn: do not retain false memories
Douglas Bagnall [Thu, 27 Jun 2024 03:20:27 +0000 (15:20 +1200)] 
cmdline:burn: do not retain false memories

If argv contains a secret option without an '=' (or in the case of
"-U", the username is separated by space), we will get to the
`if (strlen(p) == ulen) { continue; }` without resetting the found
and is_user variables. This *sometimes* has the right effect, because
the next string in argv ought to contain the secret.

But in a case like {"--password", "1234567890"}, where the secret
string is the same length as the option, we *again* take that branch
and the password is not redacted, though the argument after it will be
unless it is also of the same length.

If we always set the flags at the start we avoid this. This makes
things worse in the short term for secrets that are not the same
length as their options, but we'll get to that in another commit soon.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agocmdline:tests: extend cmdline_burn tests
Douglas Bagnall [Thu, 27 Jun 2024 03:05:03 +0000 (15:05 +1200)] 
cmdline:tests: extend cmdline_burn tests

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agoselftest: run the cmdline tests that we already have
Douglas Bagnall [Thu, 27 Jun 2024 05:04:47 +0000 (17:04 +1200)] 
selftest: run the cmdline tests that we already have

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agocmdline:burn: '-U' does not imply secrets without '%'
Douglas Bagnall [Thu, 20 Jun 2024 21:21:43 +0000 (09:21 +1200)] 
cmdline:burn: '-U' does not imply secrets without '%'

We return true from this function when a secret has been erased,
and were accidentally treating  as if it had secrets.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agodocs-xml:manpages: allow for longer version strings
Douglas Bagnall [Thu, 20 Jun 2024 23:29:36 +0000 (11:29 +1200)] 
docs-xml:manpages: allow for longer version strings

The default value (30) truncates "Samba 4.21.0pre1-DEVELOPERBUILD" to
"Samba 4.21.0pre1-DEVELOPE" in the bottom left corner of the man page.
("Samba 4.21.0pre1-DEVELOPE" is only 25 bytes long, not 30, but let's
not worry about that).

On narrow terminals (< ~75 columns) this makes it more likely that
the version string will run into the date string.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agobuild: --vendor-suffix instead of --vendor-patch-revision --vendor-name
Douglas Bagnall [Thu, 20 Jun 2024 22:40:59 +0000 (10:40 +1200)] 
build: --vendor-suffix instead of --vendor-patch-revision --vendor-name

In practice there isn't a use for two options, and neither quite
matched what people thought they were doing.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agobuildtools: sanitise strange characters in vendor strings
Douglas Bagnall [Thu, 20 Jun 2024 22:38:40 +0000 (10:38 +1200)] 
buildtools: sanitise strange characters in vendor strings

There is no reason to think '-' and '+' are the only characters that
might sneak into a vendor string; Debian habitually use '~'.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
23 months agoctdb-failover: omit "restrict" optimization keyword
Björn Baumbach [Tue, 2 Jul 2024 16:04:40 +0000 (18:04 +0200)] 
ctdb-failover: omit "restrict" optimization keyword

Fails with some compilers with

error: expected ';', ',' or ')' before 'lineptr'

Signed-off-by: Björn Baumbach <bb@sernet.de>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Autobuild-User(master): Martin Schwenke <martins@samba.org>
Autobuild-Date(master): Tue Jul  2 23:52:37 UTC 2024 on atb-devel-224

23 months agoctdb/wscript: Remove long pending unsupported option
Anoop C S [Tue, 2 Jul 2024 05:27:28 +0000 (10:57 +0530)] 
ctdb/wscript: Remove long pending unsupported option

It has been a while since --with-libcephfs option was dropped. Therefore
stop advertising it through waf scripts.

Signed-off-by: Anoop C S <anoopcs@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Tue Jul  2 09:13:20 UTC 2024 on atb-devel-224

23 months agosource3/wscript: Remove long pending unsupported option
Anoop C S [Tue, 2 Jul 2024 05:26:45 +0000 (10:56 +0530)] 
source3/wscript: Remove long pending unsupported option

It has been a while since --with-libcephfs option was dropped. Therefore
stop advertising it through waf scripts.

Signed-off-by: Anoop C S <anoopcs@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
23 months agos3:smbd: Avoid compiler warning for unused label
Jo Sutton [Mon, 1 Jul 2024 03:55:13 +0000 (15:55 +1200)] 
s3:smbd: Avoid compiler warning for unused label

If either of HAVE_FSTATFS and HAVE_LINUX_MAGIC_H are not defined, gcc
produces the following error:

../../source3/smbd/open.c: In function ‘reopen_from_fsp’:
../../source3/smbd/open.c:1222:1: error: label ‘namebased_open’ defined but not used [-Werror=unused-label]
 1222 | namebased_open:
      | ^~~~~~~~~~~~~~

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Autobuild-User(master): Martin Schwenke <martins@samba.org>
Autobuild-Date(master): Tue Jul  2 04:44:56 UTC 2024 on atb-devel-224

23 months agos4:dsdb: Remove unnecessary MIN()
Jo Sutton [Thu, 18 Jan 2024 02:16:36 +0000 (15:16 +1300)] 
s4:dsdb: Remove unnecessary MIN()

Since we have ensured that val->length >= sizeof(hash->hash),
MIN(val->length, sizeof(hash->hash)) will here always be equal to
sizeof(hash->hash).

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
23 months agolib:krb5_wrap: Fix code spelling
Jo Sutton [Wed, 17 Jan 2024 00:21:04 +0000 (13:21 +1300)] 
lib:krb5_wrap: Fix code spelling

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
23 months agos4:auth: Correct order of parameters in documentation
Jo Sutton [Tue, 16 Jan 2024 23:45:15 +0000 (12:45 +1300)] 
s4:auth: Correct order of parameters in documentation

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
23 months agos3:rpc_server: Fix code spelling
Jo Sutton [Mon, 15 Jan 2024 21:38:27 +0000 (10:38 +1300)] 
s3:rpc_server: Fix code spelling

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
23 months agolib:crypto: Remove unused macro definitions
Jo Sutton [Tue, 5 Dec 2023 02:40:30 +0000 (15:40 +1300)] 
lib:crypto: Remove unused macro definitions

As we now require GnuTLS 3.6.13, we can rely on GnuTLS providing these
macros.

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
23 months agoperftest:ndr_pack_performance: Remove obselete comment
Jo Sutton [Mon, 8 Jan 2024 04:22:39 +0000 (17:22 +1300)] 
perftest:ndr_pack_performance: Remove obselete comment

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
23 months agoperftest:ndr_pack_performance: Remove unused import
Jo Sutton [Mon, 8 Jan 2024 04:22:21 +0000 (17:22 +1300)] 
perftest:ndr_pack_performance: Remove unused import

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
23 months agos3:rpc_server: Update deprecated directives
Jo Sutton [Fri, 22 Dec 2023 00:35:26 +0000 (13:35 +1300)] 
s3:rpc_server: Update deprecated directives

‘api.prefix’ and ‘parse.error’ have both been supported since Bison 3.0.

/data/samba/source3/rpc_server/mdssvc/es_parser.y:98.1-21: warning: deprecated directive: ‘%name-prefix "mdsyyl"’, use ‘%define api.prefix {mdsyyl}’ [-Wdeprecated]
   98 | %name-prefix "mdsyyl"
      | ^~~~~~~~~~~~~~~~~~~~~
      | %define api.prefix {mdsyyl}
/data/samba/source3/rpc_server/mdssvc/es_parser.y:100.1-14: warning: deprecated directive: ‘%error-verbose’, use ‘%define parse.error verbose’ [-Wdeprecated]
  100 | %error-verbose
      | ^~~~~~~~~~~~~~
      | %define parse.error verbose
/data/samba/source3/rpc_server/mdssvc/es_parser.y: warning: fix-its can be applied.  Rerun with option '--update'. [-Wother]

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
23 months agopyglue: Remove global variables used in only one place
Jo Sutton [Tue, 12 Dec 2023 04:38:02 +0000 (17:38 +1300)] 
pyglue: Remove global variables used in only one place

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
23 months agos4:dsdb: Use appropriate type for userAccountControl flags
Jo Sutton [Thu, 13 Jun 2024 22:43:07 +0000 (10:43 +1200)] 
s4:dsdb: Use appropriate type for userAccountControl flags

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
23 months agos4:auth: Use appropriate type for userAccountControl flags
Jo Sutton [Thu, 13 Jun 2024 22:42:51 +0000 (10:42 +1200)] 
s4:auth: Use appropriate type for userAccountControl flags

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
23 months agos3:param: Check return value of strlower_m() (CID 1598446)
Jo Sutton [Tue, 11 Jun 2024 03:10:02 +0000 (15:10 +1200)] 
s3:param: Check return value of strlower_m() (CID 1598446)

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
23 months agotests/krb5: Simplify code using dict.get()
Jo Sutton [Tue, 2 Jul 2024 02:55:45 +0000 (14:55 +1200)] 
tests/krb5: Simplify code using dict.get()

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
23 months agotests/krb5: Fix type errors by giving ‘pwd_last_set’ an appropriate type
Jo Sutton [Thu, 16 May 2024 02:41:17 +0000 (14:41 +1200)] 
tests/krb5: Fix type errors by giving ‘pwd_last_set’ an appropriate type

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Martin Schwenke <martin@meltin.net>
23 months agoFix starvation of pending writes in CTDB queues
Xavi Hernandez [Thu, 27 Jun 2024 13:41:19 +0000 (15:41 +0200)] 
Fix starvation of pending writes in CTDB queues

CTDB uses a queue to receive requests and send answers. It works
asynchronously using the tevent framework. However there was an issue
that gave priority to the receiving side so, when a request was
processed and the answer posted to the queue, if another incoming
request arrived, it was served before sending the previous answer.

This scenario could repeat for long periods of time if the frequency of
incoming requests was high enough.

Eventually, a small time gap between incoming request gave a chance to
process the pending output queue, sending many answers in a burst.

This patch makes sure that both queues (input and output) are processed
if the event contains the appropriate flag.

Signed-off-by: Xavi Hernandez <xhernandez@redhat.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Mon Jul  1 09:17:43 UTC 2024 on atb-devel-224

23 months agos4:torture: Initialize param arrays
Andreas Schneider [Fri, 21 Jun 2024 11:36:23 +0000 (13:36 +0200)] 
s4:torture: Initialize param arrays

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/source4/torture/gentest.c:2690: var_decl: Declaring variable ""parm"" without initializer.
samba-4.20.0rc2/source4/torture/gentest.c:2711: uninit_use: Using uninitialized value ""parm[0]"". Field ""parm[0].out"" is uninitialized.
 2709|    }
 2710|
 2711|->  GEN_COPY_PARM;
 2712|    GEN_SET_FNUM_SMB2(in.file.handle);
 2713|    GEN_CALL_SMB2(smb2_lock(tree, &parm[i]));"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
Autobuild-User(master): Martin Schwenke <martins@samba.org>
Autobuild-Date(master): Mon Jul  1 00:23:08 UTC 2024 on atb-devel-224

23 months agos4:torture: Remove trailing spaces from gentest.c
Andreas Schneider [Fri, 21 Jun 2024 11:37:46 +0000 (13:37 +0200)] 
s4:torture: Remove trailing spaces from gentest.c

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
23 months agos3:winbind: Fix integer type of len
Andreas Schneider [Fri, 21 Jun 2024 08:57:32 +0000 (10:57 +0200)] 
s3:winbind: Fix integer type of len

"Error: INTEGER_OVERFLOW (CWE-190):
samba-4.20.0rc2/source3/winbindd/winbindd_cache.c:849: cast_overflow: Truncation due to cast operation on ""len"" from 32 to 8 bits.
samba-4.20.0rc2/source3/winbindd/winbindd_cache.c:851: overflow_sink: ""len"", which might have overflowed, is passed to ""memcpy(centry->data + centry->ofs, s, len)"". [Note: The source code implementation of the function has been overridden by a builtin model.]
  849|    centry_put_uint8(centry, len);
  850|    centry_expand(centry, len);
  851|->  memcpy(centry->data + centry->ofs, s, len);
  852|    centry->ofs += len;
  853|   }"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
23 months agos3:smbd: Make sure struct security_ace is initialized
Andreas Schneider [Fri, 21 Jun 2024 08:49:53 +0000 (10:49 +0200)] 
s3:smbd: Make sure struct security_ace is initialized

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/source3/smbd/posix_acls.c:4706: var_decl: Declaring variable ""aces"" without initializer.
samba-4.20.0rc2/source3/smbd/posix_acls.c:4748: uninit_use_in_call: Using uninitialized value ""*aces"". Field ""aces->object"" is uninitialized when calling ""make_sec_acl"".
 4746|    idx++;
 4747|
 4748|->  new_dacl = make_sec_acl(ctx,
 4749|    NT4_ACL_REVISION,
 4750|    idx,"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
23 months agos3:libsmb: Check if we have a valid file descriptor
Andreas Schneider [Fri, 21 Jun 2024 08:48:01 +0000 (10:48 +0200)] 
s3:libsmb: Check if we have a valid file descriptor

"Error: REVERSE_NEGATIVE (CWE-191):
samba-4.20.0rc2/source3/libsmb/pylibsmb.c:215: negative_sink_in_call: Passing ""t->shutdown_pipe[1]"" to a parameter that cannot be negative.
samba-4.20.0rc2/source3/libsmb/pylibsmb.c:230: check_after_sink: You might be using variable ""t->shutdown_pipe[1]"" before verifying that it is >= 0.
  228|    t->shutdown_pipe[0] = -1;
  229|    }
  230|->  if (t->shutdown_pipe[1] != -1) {
  231|    close(t->shutdown_pipe[1]);
  232|    t->shutdown_pipe[1] = -1;"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
23 months agos4:torture: Initialize pointers
Andreas Schneider [Fri, 21 Jun 2024 08:45:23 +0000 (10:45 +0200)] 
s4:torture: Initialize pointers

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/source4/torture/smb2/durable_open.c:1518: var_decl: Declaring variable ""tree2"" without initializer.
samba-4.20.0rc2/source4/torture/smb2/durable_open.c:1584: uninit_use_in_call: Using uninitialized value ""tree2"" when calling ""smb2_util_close"".
 1582|    if (tree != NULL) {
 1583|    if (h != NULL) {
 1584|->  smb2_util_close(tree2, *h);
 1585|    }
 1586|"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
23 months agos4:torture: Initialize struct smb2_handle
Andreas Schneider [Thu, 20 Jun 2024 12:48:29 +0000 (14:48 +0200)] 
s4:torture: Initialize struct smb2_handle

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/source4/torture/smb2/lease.c:452: var_decl: Declaring variable ""h"" without initializer.
samba-4.20.0rc2/source4/torture/smb2/lease.c:516: uninit_use_in_call: Using uninitialized value ""h"" when calling ""smb2_util_close"".
  514|
  515|    done:
  516|->  smb2_util_close(tree, h);
  517|    smb2_util_close(tree, hnew);
  518|    smb2_util_close(tree, h2);"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
23 months agos4:torture: Initialize struct netr_LogonSamLogonEx
Andreas Schneider [Thu, 20 Jun 2024 12:44:33 +0000 (14:44 +0200)] 
s4:torture: Initialize struct netr_LogonSamLogonEx

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/source4/torture/rpc/schannel.c:250: var_decl: Declaring variable ""r"" without initializer.
samba-4.20.0rc2/source4/torture/rpc/schannel.c:357: uninit_use_in_call: Using uninitialized value ""r.in.validation_level"" when calling ""torture_comment"".
  355|    ""LogonSamLogonEx failed"");
  356|    } else {
  357|->  torture_comment(tctx,
  358|    ""Skip auth_level[%u] Testing LogonSamLogonEx with name %s using %s and validation_level: %d\n"",
  359|    auth_level, ninfo.identity_info.account_name.string, crypto_alg,"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
23 months agos3:rpc_client: Initialize struct security_ace
Andreas Schneider [Thu, 20 Jun 2024 12:42:54 +0000 (14:42 +0200)] 
s3:rpc_client: Initialize struct security_ace

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/source3/rpc_client/init_spoolss.c:348: var_decl: Declaring variable ""ace"" without initializer.
samba-4.20.0rc2/source3/rpc_client/init_spoolss.c:415: uninit_use_in_call: Using uninitialized value ""*ace"". Field ""ace->object"" is uninitialized when calling ""make_sec_acl"".
  413|       NT5 machine. */
  414|
  415|->  if ((psa = make_sec_acl(mem_ctx, NT4_ACL_REVISION, i, ace)) != NULL) {
  416|    psd = make_sec_desc(mem_ctx,
  417|        SD_REVISION,"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
23 months agos4:torture: Make sure struct smb2_handle is initialized
Andreas Schneider [Thu, 20 Jun 2024 07:24:12 +0000 (09:24 +0200)] 
s4:torture: Make sure struct smb2_handle is initialized

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/source4/torture/smb2/lease.c:1223: var_decl: Declaring variable ""h2"" without initializer.
samba-4.20.0rc2/source4/torture/smb2/lease.c:1328: uninit_use_in_call: Using uninitialized value ""h2"" when calling ""smb2_util_close"".
 1326|    done:
 1327|    smb2_util_close(tree, h);
 1328|->  smb2_util_close(tree, h2);
 1329|
 1330|    smb2_util_unlink(tree, fname);"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
23 months agos3:smbd: Make sure struct security_ace is initialized
Andreas Schneider [Thu, 20 Jun 2024 07:14:45 +0000 (09:14 +0200)] 
s3:smbd: Make sure struct security_ace is initialized

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/source3/smbd/posix_acls.c:4778: var_decl: Declaring variable ""aces"" without initializer.
samba-4.20.0rc2/source3/smbd/posix_acls.c:4799: uninit_use_in_call: Using uninitialized value ""*aces"". Field ""aces->object"" is uninitialized when calling ""make_sec_acl"".
 4797|    idx++;
 4798|
 4799|->  new_dacl = make_sec_acl(ctx,
 4800|    NT4_ACL_REVISION,
 4801|    idx,"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
23 months agos3:smbd: Remove trailing spaces in posix_acls.c
Andreas Schneider [Thu, 20 Jun 2024 07:14:20 +0000 (09:14 +0200)] 
s3:smbd: Remove trailing spaces in posix_acls.c

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
23 months agoexamples: Make sure the array is probably initialized
Andreas Schneider [Thu, 20 Jun 2024 07:12:22 +0000 (09:12 +0200)] 
examples: Make sure the array is probably initialized

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/examples/libsmbclient/testacl2.c:27: var_decl: Declaring variable ""value"" without initializer.
samba-4.20.0rc2/examples/libsmbclient/testacl2.c:48: uninit_use_in_call: Using uninitialized value ""*value"" as argument to ""%s"" when calling ""printf"". [Note: The source code implementation of the function has been overridden by a builtin model.]
   46|    }
   47|
   48|->  printf(""Attributes for [%s] are:\n%s\n"", argv[1], value);
   49|
   50|    flags = 0;"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
23 months agowinexe: Make sure specificError is initialized
Andreas Schneider [Thu, 20 Jun 2024 07:08:48 +0000 (09:08 +0200)] 
winexe: Make sure specificError is initialized

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/examples/winexe/winexesvc.c:684: var_decl: Declaring variable ""specificError"" without initializer.
samba-4.20.0rc2/examples/winexe/winexesvc.c:711: uninit_use: Using uninitialized value ""specificError"".
  709|    winexesvcStatus.dwWaitHint = 0;
  710|    winexesvcStatus.dwWin32ExitCode = status;
  711|->  winexesvcStatus.dwServiceSpecificExitCode = specificError;
  712|
  713|    SetServiceStatus(winexesvcStatusHandle, &winexesvcStatus);"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
23 months agosmbd: Fix cached dos attributes
Volker Lendecke [Mon, 24 Jun 2024 14:50:57 +0000 (16:50 +0200)] 
smbd: Fix cached dos attributes

The callers of fset_dos_mode must set the cached attributes
themselves, which I did not see. I tried, but I did not find a clean
way to fix this behind SMB_VFS_FSET_DOS_ATTRIBUTES, with a smb_fname
and smb_fname->fsp->fsp_name we might have two copies of the cached
dos attributes around and if we only update fsp->fsp_name, we might
miss the outer one.

Not doing a test, this is really fresh code, and in the future we must
reorganize setting and caching dos attributes anyway.

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): Fri Jun 28 14:32:27 UTC 2024 on atb-devel-224

23 months agolibrpc: Make NDR_PRINT_DEBUG call just one DEBUG
Volker Lendecke [Mon, 17 Jun 2024 12:42:30 +0000 (14:42 +0200)] 
librpc: Make NDR_PRINT_DEBUG call just one DEBUG

Give debug.c the chance to use just one write call (right now it
doesn't yet)

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Simplify smbd_do_qfsinfo with direct struct initialization
Volker Lendecke [Thu, 27 Jun 2024 10:50:50 +0000 (12:50 +0200)] 
smbd: Simplify smbd_do_qfsinfo with direct struct initialization

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Simplify reopen_from_fsp
Volker Lendecke [Wed, 26 Jun 2024 13:30:50 +0000 (15:30 +0200)] 
smbd: Simplify reopen_from_fsp

In a variable declaration the (struct ...) is not needed

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Remove some unused code
Volker Lendecke [Wed, 26 Jun 2024 06:57:26 +0000 (08:57 +0200)] 
smbd: Remove some unused code

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Avoid a cast
Volker Lendecke [Tue, 25 Jun 2024 14:11:16 +0000 (16:11 +0200)] 
smbd: Avoid a cast

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Print reparse_point in dos_mode_debug_print
Volker Lendecke [Tue, 25 Jun 2024 14:10:28 +0000 (16:10 +0200)] 
smbd: Print reparse_point in dos_mode_debug_print

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Simplify dos_mode_from_sbuf
Volker Lendecke [Tue, 25 Jun 2024 14:07:58 +0000 (16:07 +0200)] 
smbd: Simplify dos_mode_from_sbuf

We don't need that else branch, this could be a switch as well

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Simplify fdos_mode
Volker Lendecke [Tue, 25 Jun 2024 14:04:53 +0000 (16:04 +0200)] 
smbd: Simplify fdos_mode

We don't need the outer !NT_STATUS_IS_OK and the comment

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Simplify filename_convert_dirfsp_nosymlink
Volker Lendecke [Tue, 25 Jun 2024 13:49:23 +0000 (15:49 +0200)] 
smbd: Simplify filename_convert_dirfsp_nosymlink

Initialize the timestamps in the existing struct assignment

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Remove an obsolete comment
Volker Lendecke [Tue, 25 Jun 2024 11:08:58 +0000 (13:08 +0200)] 
smbd: Remove an obsolete comment

We have a good understanding of SAMBA_UTIME_OMIT these days

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Simplify init_smb_file_time
Volker Lendecke [Tue, 25 Jun 2024 11:06:35 +0000 (13:06 +0200)] 
smbd: Simplify init_smb_file_time

Call make_omit_timespec just once, saves a few .text bytes

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Simplify copy_stat_ex_timestamps
Volker Lendecke [Tue, 25 Jun 2024 10:39:09 +0000 (12:39 +0200)] 
smbd: Simplify copy_stat_ex_timestamps

copy_stat_ex_timestamps doesn't need the fsp, it only needs the
destination stat struct

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Modernize a DEBUG
Volker Lendecke [Tue, 25 Jun 2024 08:41:41 +0000 (10:41 +0200)] 
smbd: Modernize a DEBUG

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agovfs: Fix typos
Volker Lendecke [Tue, 25 Jun 2024 08:28:38 +0000 (10:28 +0200)] 
vfs: Fix typos

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Don't leave a pointer variable uninitialized
Volker Lendecke [Mon, 24 Jun 2024 14:52:51 +0000 (16:52 +0200)] 
smbd: Don't leave a pointer variable uninitialized

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Align an integer type
Volker Lendecke [Mon, 24 Jun 2024 14:51:08 +0000 (16:51 +0200)] 
smbd: Align an integer type

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agosmbd: Modernize a DEBUG
Volker Lendecke [Mon, 24 Jun 2024 12:06:18 +0000 (14:06 +0200)] 
smbd: Modernize a DEBUG

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
23 months agoctdb-conf: Rename config loading to not be daemon-specific
Martin Schwenke [Sat, 22 Jun 2024 01:27:22 +0000 (11:27 +1000)] 
ctdb-conf: Rename config loading to not be daemon-specific

We might end up using it elsewhere.

Signed-off-by: Martin Schwenke <mschwenke@ddn.com>
Reviewed-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
23 months agoctdb-conf: Move conf.[ch] to conf/ subdirectory
Martin Schwenke [Mon, 19 Aug 2019 02:17:20 +0000 (12:17 +1000)] 
ctdb-conf: Move conf.[ch] to conf/ subdirectory

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
23 months agoctdb-conf: Move all conf files to new conf/ subdirectory
Martin Schwenke [Mon, 19 Aug 2019 02:06:40 +0000 (12:06 +1000)] 
ctdb-conf: Move all conf files to new conf/ subdirectory

Leave common/conf.[ch] where they are to make this commit
comprehensible.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
23 months agos4:torture: Initialize struct wrepl_wins_name
Andreas Schneider [Mon, 24 Jun 2024 13:19:20 +0000 (15:19 +0200)] 
s4:torture: Initialize struct wrepl_wins_name

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/source4/torture/nbt/winsreplication.c:1244: var_decl: Declaring variable ""wins_name1"" without initializer.
samba-4.20.0rc2/source4/torture/nbt/winsreplication.c:4835: assign: Assigning: ""wins_name_r1"" = ""&wins_name1"", which points to uninitialized data.
samba-4.20.0rc2/source4/torture/nbt/winsreplication.c:4905: uninit_use_in_call: Using uninitialized value ""*wins_name_r1"". Field ""wins_name_r1->is_group"" is uninitialized when calling ""test_wrepl_update_one"".
 4903|
 4904|    /* now apply R1 */
 4905|->  ret &= test_wrepl_update_one(tctx, ctx, records[i].r1.owner, wins_name_r1);
 4906|    ret &= test_wrepl_is_applied(tctx, ctx, records[i].r1.owner,
 4907|         wins_name_r1, records[i].r1.apply_expected);"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Fri Jun 28 12:44:31 UTC 2024 on atb-devel-224

23 months agoexamples: Initialize char arrays
Andreas Schneider [Mon, 24 Jun 2024 13:17:13 +0000 (15:17 +0200)] 
examples: Initialize char arrays

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/examples/libsmbclient/testacl3.c:15: var_decl: Declaring variable ""value"" without initializer.
samba-4.20.0rc2/examples/libsmbclient/testacl3.c:55: uninit_use_in_call: Using uninitialized value ""*value"" as argument to ""%s"" when calling ""printf"". [Note: The source code implementation of the function has been overridden by a builtin model.]
   53|    }
   54|
   55|->  printf(""Attributes for [%s] are:\n%s\n"", path, value);
   56|    }
   57|"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
23 months agoexamples: Use cp with force option
Andreas Schneider [Mon, 24 Jun 2024 13:14:43 +0000 (15:14 +0200)] 
examples: Use cp with force option

"Error: SHELLCHECK_WARNING:
/usr/share/doc/samba/printing/VampireDriversFunctions:951:15: warning[SC2216]: Piping to 'cp', a command that doesn't read stdin. Wrong command or missing xargs?
  949|    CWD2=""$( pwd )"" ;
  950|    cd ""${i}"";
  951|->  echo ""yes"" | cp ../alldriverfiles.txt . 2> /dev/null ;
  952|
  953|    cat alldriverfiles.txt \"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
23 months agos4:torture: Fully initialize struct samr_OpenUser
Andreas Schneider [Mon, 24 Jun 2024 13:09:21 +0000 (15:09 +0200)] 
s4:torture: Fully initialize struct samr_OpenUser

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/source4/torture/rpc/samr.c:7381: var_decl: Declaring variable ""r"" without initializer.
samba-4.20.0rc2/source4/torture/rpc/samr.c:7428: uninit_use: Using uninitialized value ""r.out.result.v"".
 7426|    torture_assert_ntstatus_ok(tctx, dcerpc_samr_QueryUserInfo_r(b, tctx, &q),
 7427|    ""QueryUserInfo failed"");
 7428|->  if (!NT_STATUS_IS_OK(r.out.result)) {
 7429|    torture_result(tctx, TORTURE_FAIL, ""QueryUserInfo(%u) failed - %s\n"", r.in.rid, nt_errstr(r.out.result));
 7430|    return false;"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
23 months agos3:rpc_client: Check for array size instead of UINT16_MAX
Andreas Schneider [Mon, 24 Jun 2024 11:38:34 +0000 (13:38 +0200)] 
s3:rpc_client: Check for array size instead of UINT16_MAX

mdscli_ctx->mdscmd_open.share_path is an array of size 1025. The
boundary is 1025 and not UINT16_MAX.

"Error: OVERRUN (CWE-119):
samba-4.20.0rc2/source3/rpc_client/cli_mdssvc.c:127: cond_at_least: Checking ""share_path_len < 1UL"" implies that ""share_path_len"" is at least 1 on the false branch.
samba-4.20.0rc2/source3/rpc_client/cli_mdssvc.c:127: cond_between: Checking ""share_path_len > 65535UL"" implies that ""share_path_len"" is between 1 and 65535 (inclusive) on the false branch.
samba-4.20.0rc2/source3/rpc_client/cli_mdssvc.c:133: overrun-local: Overrunning array ""mdscli_ctx->mdscmd_open.share_path"" of 1025 bytes at byte offset 65534 using index ""share_path_len - 1UL"" (which evaluates to 65534).
  131|    mdscli_ctx->mdscmd_open.share_path_len = share_path_len;
  132|
  133|->  if (mdscli_ctx->mdscmd_open.share_path[share_path_len-1] == '/') {
  134|    mdscli_ctx->mdscmd_open.share_path[share_path_len-1] = '\0';
  135|    mdscli_ctx->mdscmd_open.share_path_len--;"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
23 months agos4:torture: Initialize struct wrepl_wins_name
Andreas Schneider [Mon, 24 Jun 2024 10:22:19 +0000 (12:22 +0200)] 
s4:torture: Initialize struct wrepl_wins_name

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/source4/torture/nbt/winsreplication.c:6759: var_decl: Declaring variable ""wins_name_"" without initializer.
samba-4.20.0rc2/source4/torture/nbt/winsreplication.c:6760: assign: Assigning: ""wins_name"" = ""&wins_name_"", which points to uninitialized data.
samba-4.20.0rc2/source4/torture/nbt/winsreplication.c:9455: uninit_use_in_call: Using uninitialized value ""*wins_name"". Field ""wins_name->is_group"" is uninitialized when calling ""test_wrepl_update_one"".
 9453|    wins_name->unknown = ""255.255.255.255"";
 9454|
 9455|->  ret &= test_wrepl_update_one(tctx, ctx, &ctx->b, wins_name);
 9456|
 9457|    /*"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
23 months agos3:auth: Avoid passing freed pamh pointer to funcitons using it
Andreas Schneider [Mon, 24 Jun 2024 08:20:51 +0000 (10:20 +0200)] 
s3:auth: Avoid passing freed pamh pointer to funcitons using it

"Error: USE_AFTER_FREE (CWE-416):
samba-4.20.0rc2/source3/auth/pampass.c:466: freed_arg: ""pam_end"" frees ""pamh"".
samba-4.20.0rc2/source3/auth/pampass.c:467: pass_freed_arg: Passing freed pointer ""pamh"" as an argument to ""smb_pam_error_handler"".
  465|    if( pamh != NULL ) {
  466|    pam_error = pam_end(pamh, 0);
  467|->  if(smb_pam_error_handler(pamh, pam_error, ""End Cleanup Failed"", 2) == True) {
  468|    DEBUG(4, (""smb_pam_end: PAM: PAM_END OK.\n""));
  469|    return True;"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
23 months agos3:auth: Remove trailing spaces in pampass.c
Andreas Schneider [Mon, 24 Jun 2024 08:21:30 +0000 (10:21 +0200)] 
s3:auth: Remove trailing spaces in pampass.c

Reviewed-by: Noel Power <npower@samba.org>
23 months agos4:torture: Initialize struct smb2_handle
Andreas Schneider [Mon, 24 Jun 2024 08:11:31 +0000 (10:11 +0200)] 
s4:torture: Initialize struct smb2_handle

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/source4/torture/smb2/lease.c:336: var_decl: Declaring variable ""hnew"" without initializer.
samba-4.20.0rc2/source4/torture/smb2/lease.c:377: uninit_use_in_call: Using uninitialized value ""hnew"" when calling ""smb2_util_close"".
  375|    done:
  376|    smb2_util_close(tree, h);
  377|->  smb2_util_close(tree, hnew);
  378|
  379|    smb2_util_unlink(tree, fname);"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
23 months agos4:torture: Initialize struct nbt_name_query
Andreas Schneider [Mon, 24 Jun 2024 08:09:43 +0000 (10:09 +0200)] 
s4:torture: Initialize struct nbt_name_query

"Error: UNINIT (CWE-457):
samba-4.20.0rc2/source4/torture/nbt/query.c:53: var_decl: Declaring variable ""io"" without initializer.
samba-4.20.0rc2/source4/torture/nbt/query.c:76: uninit_use_in_call: Using uninitialized value ""io.in.retries"" when calling ""nbt_name_query_send"".
   74|    while (num_sent - (result->num_pass+result->num_fail) < 10) {
   75|    struct nbt_name_request *req;
   76|->  req = nbt_name_query_send(nbtsock, &io);
   77|    torture_assert(tctx, req != NULL, ""Failed to setup request!"");
   78|    req->async.fn = increment_handler;"

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
23 months agos3:torture: Remove trailing spaces in query.c
Andreas Schneider [Mon, 24 Jun 2024 08:09:24 +0000 (10:09 +0200)] 
s3:torture: Remove trailing spaces in query.c

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
23 months agodoc: Update codeing guidelines for struct initialisation
Noel Power [Thu, 27 Jun 2024 08:02:04 +0000 (09:02 +0100)] 
doc: Update codeing guidelines for struct initialisation

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andreas Schneider <asn@samba.org>
Autobuild-User(master): Noel Power <npower@samba.org>
Autobuild-Date(master): Fri Jun 28 10:17:14 UTC 2024 on atb-devel-224

23 months agosmbd: Fix crossing automounter mount points
Volker Lendecke [Fri, 29 Dec 2023 15:54:56 +0000 (16:54 +0100)] 
smbd: Fix crossing automounter mount points

We get ENOENT on /proc/self/fd/<fdnum> when we try to turn the
mountpoint's O_PATH handle into a real one. This does not trigger a
mount attempt, you have to use name-based calls.

This is not the real fix, because if the autofs mount triggers, the
inode number will change. For directories this is not a huge problem
as we don't touch the share mode database before we open the "real"
fd. We would only violate potential share modes with other pure
READ_ATTRIBUTES (i.e. stat-) opens that came before the mount
trigger.

As I don't think share modes on directories are really relevant, I
think we can live with this "fix". Once we do directory leases this
will potentially change.

As a quick remedy we could use our defer_open() mechanism that starts
path processing from scratch. But as long as this seems not really
required, we should not add users of this really bad way of going back
to square 1.

The "real" fix would be to go back to the point where we open the last
component with openat(). In the retry round we need to do this without
O_PATH to trigger the mount and only then do the initial fstat.

Right now I don't see an easy way to properly test this
behaviour. Intercepting with vfs_error_inject is certainly possible,
but nailing the exact call would clutter the main code path. So I have
just tested this manually.

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): Thu Jun 27 11:59:05 UTC 2024 on atb-devel-224

23 months agovfs_ceph: use consistent code style when setting errno
Shachar Sharon [Tue, 28 May 2024 09:36:14 +0000 (12:36 +0300)] 
vfs_ceph: use consistent code style when setting errno

When setting explicit value to 'errno' use same coding-style as used in
this entire module (spaces before and after assignment operator).

Signed-off-by: Shachar Sharon <ssharon@redhat.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
Autobuild-User(master): Anoop C S <anoopcs@samba.org>
Autobuild-Date(master): Thu Jun 27 06:35:19 UTC 2024 on atb-devel-224

23 months agovfs_ceph: explicit cast to uint64_t upon failure of ceph_statfs
Shachar Sharon [Thu, 30 May 2024 08:02:37 +0000 (11:02 +0300)] 
vfs_ceph: explicit cast to uint64_t upon failure of ceph_statfs

When a call to 'ceph_statfs' from with 'cephwrap_disk_free' returns
non-zero status do an explicit cast to uint64_t for the negative (-1)
value returned by 'status_code'.

Signed-off-by: Shachar Sharon <ssharon@redhat.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
23 months agovfs_ceph: adjust code-style of cephwrap_disk_free
Shachar Sharon [Mon, 27 May 2024 09:30:44 +0000 (12:30 +0300)] 
vfs_ceph: adjust code-style of cephwrap_disk_free

The common convention in 'vfs_ceph.c' module is to bailout (by return or
goto) whenever the return value from libcephfs call is not OK. Apply
this code-style to cephwrap_disk_free hook.

Signed-off-by: Shachar Sharon <ssharon@redhat.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
23 months agovfs_ceph: replace WRAP_RETURN macro with convenience helpers
Shachar Sharon [Thu, 23 May 2024 14:15:40 +0000 (17:15 +0300)] 
vfs_ceph: replace WRAP_RETURN macro with convenience helpers

The WRAP_RETURN is a non-hygienic macro, and as such has the potential
of creating bogus code (e.g. 'return WRAP_RETURN(ret);' which existed
in the code in the past but did not yield any compiler warning). Prefer
simple convenience helper functions instead, which are also type safe.

Signed-off-by: Shachar Sharon <ssharon@redhat.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
23 months agovfs_ceph: use talloc in realpath hook
Shachar Sharon [Wed, 22 May 2024 13:28:32 +0000 (16:28 +0300)] 
vfs_ceph: use talloc in realpath hook

Prefer talloc_asprintf over asprintf when resolving realpath.
Re-format code using 'git clang-format'.

Signed-off-by: Shachar Sharon <ssharon@redhat.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
23 months agovfs_ceph: re-map unimplemented hooks
Shachar Sharon [Wed, 22 May 2024 13:11:57 +0000 (16:11 +0300)] 
vfs_ceph: re-map unimplemented hooks

Code cleanup: prefer standard convenience helpers for unimplemented
VFS hooks.

Signed-off-by: Shachar Sharon <ssharon@redhat.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
23 months agovfs_ceph: align lines-length with coding standard
Shachar Sharon [Sun, 26 May 2024 13:24:06 +0000 (16:24 +0300)] 
vfs_ceph: align lines-length with coding standard

Coding standard requires following Linux kernel style guide, with an
explicit statement that "Maximum Line Width is 80 Characters". Align
vfs_ceph.c with this convention: split long lines into multiple lines
and use 'git clang-format' to do auto-formatting based on Samba project
'.clang-format' settings.

Signed-off-by: Shachar Sharon <ssharon@redhat.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
23 months agovfs_ceph: improve readability of cephwrap_realpath
Shachar Sharon [Thu, 30 May 2024 07:27:35 +0000 (10:27 +0300)] 
vfs_ceph: improve readability of cephwrap_realpath

Minor code cleanup: use local variable to reference current-work dir.
This commit is in preparation to following code-cleanup which aligns
line-length with Samba's coding conventions.

Signed-off-by: Shachar Sharon <ssharon@redhat.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
23 months agoExtended the documentation for the "tls certfile" parameter in the smb.conf.
Oliver Mihatsch [Thu, 13 Jun 2024 10:16:05 +0000 (12:16 +0200)] 
Extended the documentation for the "tls certfile" parameter in the smb.conf.

Signed-off-by: Oliver Mihatsch <om-git@q4k.de>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Douglas Bagnall <dbagnall@samba.org>
Autobuild-Date(master): Thu Jun 27 05:33:17 UTC 2024 on atb-devel-224

23 months agothird_party/heimdal: Import lorikeet-heimdal-202406270253 (commit cbd2c0b8ec604686dc7...
Jo Sutton [Thu, 27 Jun 2024 02:59:43 +0000 (14:59 +1200)] 
third_party/heimdal: Import lorikeet-heimdal-202406270253 (commit cbd2c0b8ec604686dc7b363d1dcec69bf5f7a7ec)

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
23 months agothird_party/heimdal: Import lorikeet-heimdal-202406240121 (commit 4315286377278234be2...
Jo Sutton [Wed, 12 Jun 2024 02:42:38 +0000 (14:42 +1200)] 
third_party/heimdal: Import lorikeet-heimdal-202406240121 (commit 4315286377278234be2f3b6d52225a17b6116d54)

This lets us match the Windows FAST reply when the password is expired.

Windows clients were upset by the NTSTATUS field in the edata,
apparently interpreting it to mean “insufficient resource”.

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

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
23 months agotests/krb5: Add tests for errors produced when logging in with unusable accounts
Jo Sutton [Thu, 27 Jun 2024 00:29:52 +0000 (12:29 +1200)] 
tests/krb5: Add tests for errors produced when logging in with unusable accounts

Heimdal matches Windows in the no‐FAST case, but produces NTSTATUS codes
when it shouldn’t in the FAST case.

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

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
23 months agotests/krb5: Allow creation of disabled accounts for testing
Jo Sutton [Tue, 25 Jun 2024 00:51:48 +0000 (12:51 +1200)] 
tests/krb5: Allow creation of disabled accounts for testing

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

Signed-off-by: Jo Sutton <josutton@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
23 months agoctdb-failover: Split statd_callout add-client/del-client
Martin Schwenke [Fri, 10 May 2024 01:42:26 +0000 (11:42 +1000)] 
ctdb-failover: Split statd_callout add-client/del-client

rpc.statd is single-threaded and runs its HA callout synchronously. If
it is too slow then latency accumulates and rpc.statd's backlog grows.

Running a pair of add-client/del-client events with the current code
averages ~0.030s in my test environment.  This mean that 1000 clients
reclaiming locks after failover can easily cause 10s of latency.  This
could cause rpc.statd to become unresponsive, resulting in a time out
for an rpcinfo-based health check of the status service.

Split the add-client/del-client events out to a standalone
statd_callout executable, written in C, to be used as the HA callout
for rpc.statd.  All other functions move to statd_callout_helper.
Now, running a pair of add-client/del-client events in my test
environment averages only ~0.002s.  This seems less likely to cause
latency problems.

The standalone statd_callout executable needs to read a configuration
file, which is generated by statd_callout_helper from the "startup"
event.  It also needs access to a list of currently assigned public
IPs.

For backward compatibility, during installation a symlink is created
from $CTDB_BASE/statd-callout to the new statd_callout, which is
installed in the helper directory.

Testing this as part of the eventscript unit tests starts to become
even more of a hack than it used to be.  However, the dependency on
stubs and the corresponding setup of fake state makes it hard to move
this elsewhere.

Signed-off-by: Martin Schwenke <mschwenke@ddn.com>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Autobuild-User(master): Martin Schwenke <martins@samba.org>
Autobuild-Date(master): Tue Jun 25 04:24:57 UTC 2024 on atb-devel-224

23 months agoctdb-doc: Drop unnecessary, broken attempt at rpc.statd stack trace
Martin Schwenke [Mon, 4 Mar 2024 03:29:41 +0000 (14:29 +1100)] 
ctdb-doc: Drop unnecessary, broken attempt at rpc.statd stack trace

There is a typo here, since there will be no process called "status".
Instead of fixing it, drop this because rpc.statd isn't the focus of
this monitoring check and when systemd is init rpc.statd isn't
restarted with nfs-ganesha.  It stays running, so a confusing stack
trace for rpc.statd is always logged.

Signed-off-by: Martin Schwenke <mschwenke@ddn.com>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>