]> git.ipfire.org Git - thirdparty/samba.git/log
thirdparty/samba.git
33 hours agos3:libsmb: Add a talloc context to the internal data structure
Andreas Schneider [Thu, 30 Oct 2025 09:56:43 +0000 (10:56 +0100)] 
s3:libsmb: Add a talloc context to the internal data structure

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
33 hours agos3:client: Use a long living memory context for cli_cm_open()
Andreas Schneider [Wed, 29 Oct 2025 14:11:37 +0000 (15:11 +0100)] 
s3:client: Use a long living memory context for cli_cm_open()

This will fix memory leaks with a later commit.

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
33 hours agos3:client: Pass down a talloc context to do_cd()
Andreas Schneider [Wed, 29 Oct 2025 10:21:58 +0000 (11:21 +0100)] 
s3:client: Pass down a talloc context to do_cd()

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
33 hours agos3:client: Pass a talloc context down to cmd_*() functions
Andreas Schneider [Wed, 29 Oct 2025 09:12:29 +0000 (10:12 +0100)] 
s3:client: Pass a talloc context down to cmd_*() functions

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
33 hours agos3:client: Pass down a talloc context to process_command_string()
Andreas Schneider [Wed, 29 Oct 2025 10:07:08 +0000 (11:07 +0100)] 
s3:client: Pass down a talloc context to process_command_string()

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
33 hours agos3:client: Pass down a talloc context to do_tar_op()
Andreas Schneider [Wed, 29 Oct 2025 10:03:45 +0000 (11:03 +0100)] 
s3:client: Pass down a talloc context to do_tar_op()

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
33 hours agos3:client: Pass down a talloc context to do_message_op()
Andreas Schneider [Wed, 29 Oct 2025 10:00:18 +0000 (11:00 +0100)] 
s3:client: Pass down a talloc context to do_message_op()

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
33 hours agos3:client: Pass down a talloc context to do_host_query()
Andreas Schneider [Wed, 29 Oct 2025 09:58:56 +0000 (10:58 +0100)] 
s3:client: Pass down a talloc context to do_host_query()

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
33 hours agos3:client: Pass down a talloc context to process()
Andreas Schneider [Mon, 27 Oct 2025 14:08:53 +0000 (15:08 +0100)] 
s3:client: Pass down a talloc context to process()

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
33 hours agos3:client: Use a stackframe in process_command_string()
Andreas Schneider [Wed, 29 Oct 2025 09:35:16 +0000 (10:35 +0100)] 
s3:client: Use a stackframe in process_command_string()

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
33 hours agos3:client: Only allocate the stackframe once in process_stdin()
Andreas Schneider [Tue, 28 Oct 2025 09:01:00 +0000 (10:01 +0100)] 
s3:client: Only allocate the stackframe once in process_stdin()

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
33 hours agos3:client: Do not call exit() in cmd_quit()
Andreas Schneider [Wed, 29 Oct 2025 09:13:44 +0000 (10:13 +0100)] 
s3:client: Do not call exit() in cmd_quit()

We want to go through deallocation in the main function.

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
33 hours agos3:client: Always goto out (destructor) in do_cd()
Andreas Schneider [Tue, 28 Oct 2025 09:06:25 +0000 (10:06 +0100)] 
s3:client: Always goto out (destructor) in do_cd()

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
33 hours agos3:client: Make cmd_iosize() static
Andreas Schneider [Wed, 29 Oct 2025 09:25:39 +0000 (10:25 +0100)] 
s3:client: Make cmd_iosize() static

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
39 hours agos3-smbd: send notifications for ACL changes
Günther Deschner [Thu, 2 Oct 2025 14:04:42 +0000 (16:04 +0200)] 
s3-smbd: send notifications for ACL changes

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

Guenther

Signed-off-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Thu Nov  6 02:42:06 UTC 2025 on atb-devel-224

40 hours agos4-torture: add test for FILE_NOTIFY_CHANGE_SECURITY
Günther Deschner [Sun, 12 Oct 2025 12:25:12 +0000 (14:25 +0200)] 
s4-torture: add test for FILE_NOTIFY_CHANGE_SECURITY

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

Guenther

Signed-off-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
2 days agowireshark-pidl: Don't warn about unused hfs used in CODE blocks
John Thacker [Sun, 12 Oct 2025 19:18:11 +0000 (15:18 -0400)] 
wireshark-pidl: Don't warn about unused hfs used in CODE blocks

From the Wireshark development branch:

    commit 4f55543f6b6e5c5d15572889a2cac2b0ec28200e
    Author: John Thacker <johnthacker@gmail.com>
    Date:   Fri Oct 10 11:10:13 2025 -0400

        pidl: Check if a hf is used in a CODE block

        If a field declared in a conformance file appears within a custom
        CODE block in the conformance file, don't warn about the hf being
        unused. This theoretically could have false negatives if a field
        is mentioned only in a comment in the CODE block; we'd have to
        remove the comments with something like Regexp::Common before
        searching to avoid that.

        The current conformance files in the Wireshark distribution don't
        have any such false negative cases, but there are dozens of false
        positives prevented by this change.

Signed-off-by: John Thacker <johnthacker@gmail.com>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Wed Nov  5 11:12:35 UTC 2025 on atb-devel-224

2 days agowireshark-pidl: Do not calculate functions replaced by manual code
John Thacker [Sun, 12 Oct 2025 19:14:47 +0000 (15:14 -0400)] 
wireshark-pidl: Do not calculate functions replaced by manual code

From the Wireshark development branch:

    commit d2232d7e51640e0e736d7b8df1b21598a21a1c85
    Author: John Thacker <johnthacker@gmail.com>
    Date:   Fri Oct 10 23:02:58 2025 -0400

        pidl: Do not produce a function that is replaced by MANUAL code

        If a MANUAL directive in a conformance file causes a function not to be
        emitted, do not bother calculating the function that will not be used.
        This is similar to the NOEMIT directive, but has different logic because
        MANUAL only prevents emitting the function for one level of an element
        instead of all the functions and variables. This does not change the
        dissectors produced at all, only skips some unnecessary compilation.

        In particular, the messages when compiling the pidl-dissectors target:

        dnsserver.idl:159: error: Inline arrays not supported
        eventlog.idl:54: error: Inline arrays not supported

        are no longer inaccurately produced. The inline arrays in those two IDL
        files have long been supported through the MANUAL code blocks.

        Expand on the error message to suggest the use of MANUAL directives
        for implementation.

Signed-off-by: John Thacker <johnthacker@gmail.com>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
2 days agowireshark-pidl: Fix filter names for subcontext length fields
John Thacker [Sun, 12 Oct 2025 19:11:39 +0000 (15:11 -0400)] 
wireshark-pidl: Fix filter names for subcontext length fields

From the Wireshark development branch:

    commit e3d8636109182d7e243eea6216af7f14edda3227
    Author: John Thacker <johnthacker@gmail.com>
    Date:   Thu Oct 9 20:06:43 2025 -0400

        pidl: Fix filter names for subcontext length fields

        The Perl variable $_->{NAME} never exists at the point in the code;
        $e->{NAME} is almost surely intended instead, which makes the subcontext
        length field have the same filter name as the parent field with
        ".subcontext" added.

        This changes a few fields, including making some fields in the same
        struct or union that incorrectly shared a filter name now have unique
        filter names. Also prevents Perl warnings:

        Use of uninitialized value in concatenation (.) or string at /builds/wireshark/wireshark/tools/pid
    l/lib/Parse/Pidl/Wireshark/NDR.pm line 438.

Signed-off-by: John Thacker <johnthacker@gmail.com>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
2 days agowireshark-pidl: Check for undefined SwitchType first
John Thacker [Sun, 12 Oct 2025 19:07:00 +0000 (15:07 -0400)] 
wireshark-pidl: Check for undefined SwitchType first

From the Wireshark development branch:

    commit edc98c1b537cbd7b8fb35cdb8b61b7dd000a1544
    Author: John Thacker <johnthacker@gmail.com>
    Date:   Thu Oct 9 18:31:35 2025 -0400

        pidl: Check for undefined SwitchType first

        If the switch type is not defined (e.g. in a union with no
        discriminant) check for that first instead of doing a bunch of
        comparisons with an uninitialized scalar variable. Doesn't change
        the dissector results, but prevents a bunch of Perl warnings:

        Use of uninitialized value $t in hash element at /wireshark/tools/pidl/lib/Parse/Pidl/Typelist.pm
    line 194.
        Use of uninitialized value in string eq at /wireshark/tools/pidl/lib/Parse/Pidl/Wireshark/NDR.pm l
    ine 480.
        Use of uninitialized value in string eq at /wireshark/tools/pidl/lib/Parse/Pidl/Wireshark/NDR.pm l
    ine 482.
        Use of uninitialized value in string eq at /wireshark/tools/pidl/lib/Parse/Pidl/Wireshark/NDR.pm l
    ine 484.

Signed-off-by: John Thacker <johnthacker@gmail.com>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
2 days agowireshark-pidl: Warn appropriately on unsupported switch_is discriminants
John Thacker [Sun, 12 Oct 2025 19:00:35 +0000 (15:00 -0400)] 
wireshark-pidl: Warn appropriately on unsupported switch_is discriminants

From the Wireshark development branch:

    commit 448a0d6a239f3f274d3a3a3a39ea9c6ce7fd2611
    Author: John Thacker <johnthacker@gmail.com>
    Date:   Thu Oct 9 10:18:07 2025 -0400

        pidl: Warn appropriately on unsupported switch_is discriminants

        Microsoft's MIDL supports switch_is discriminants which have limited
        C-language expressions including conditionals, logical, relational,
        and arithmetic expressions. [1] Some of the distributed IDL files include
        such expressions. The current handling in PIDL's Wireshark NDR.pm only
        supports a single identifier (possibly a pointer), which appears to be
        the way it is defined in the original DCE IDL. [2,3]

        In addition, the switch_is discriminant may simply be misspelled or
        otherwise not found when parsing, leading to an empty array reference.
        Test for the empty array in order to produce a helpful warning message
        with the filename and line number, instead of unhelpful Perl warnings.

        This does not provide support for the construct not affect the generated
        dissectors at all, only reduces 4 unclear warnings into a single useful
        warning.

        Before:
        Use of uninitialized value $name in string ne at /home/johnthacker/wireshark/tools/pidl/lib/Parse/
    Pidl/Wireshark/NDR.pm line 516.
        Use of uninitialized value in string eq at /home/johnthacker/wireshark/tools/pidl/lib/Parse/Pidl/W
    ireshark/NDR.pm line 525.
        Use of uninitialized value $name in string ne at /home/johnthacker/wireshark/tools/pidl/lib/Parse/
    Pidl/Wireshark/NDR.pm line 527.
        Use of uninitialized value $name in string ne at /home/johnthacker/wireshark/tools/pidl/lib/Parse/
    Pidl/Wireshark/NDR.pm line 531.

        After:
        drsuapi.idl:828: warning: ctr switch_is discriminant `level|(type<<16)' not found. (Only single id
    entifiers are supported, not expressions as in MIDL.)

        [1] - https://learn.microsoft.com/en-us/windows/win32/midl/switch-is
        [2] - https://pubs.opengroup.org/onlinepubs/9629399/chap4.htm#tagcjh_08_02_12
        [3] - https://pubs.opengroup.org/onlinepubs/9629399/chap4.htm#tagcjh_08_04

Signed-off-by: John Thacker <johnthacker@gmail.com>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
2 days agowireshark-pidl: Reduce Perl strict warnings
John Thacker [Sun, 12 Oct 2025 18:56:40 +0000 (14:56 -0400)] 
wireshark-pidl: Reduce Perl strict warnings

From the Wireshark git development branch:

    commit 8dee8601776175a6132bef7ab19f36ee3d589d06
    Author: John Thacker <johnthacker@gmail.com>
    Date:   Wed Oct 8 17:15:56 2025 -0400

        pidl: Use has_property to avoid comparing undef with the empty string

        Prevents a bunch of (harmless) warnings when compiling:

        Use of uninitialized value in string eq at /builds/wireshark/wireshark/tools/pidl/lib/Parse/Pidl/Wireshark/NDR.pm line 521.

Signed-off-by: John Thacker <johnthacker@gmail.com>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
2 days agowireshark-pidl: Reduce false positive warnings when compiling
John Thacker [Sun, 12 Oct 2025 18:53:49 +0000 (14:53 -0400)] 
wireshark-pidl: Reduce false positive warnings when compiling

From the Wireshark git repository, to reduce false positive warnings when
compiling dissectors with pidl:

    commit 919f15ab2ea313d69cc2578426430f22f65a51b5
    Author: John Thacker <johnthacker@gmail.com>
    Date:   Wed Oct 8 16:52:09 2025 -0400

        pidl: Don't warn about params that are used

        The "USED" indicator is never set for params, which results in many
        bogus "warning: dissector param never used" messages when compiling
        the pidl dissectors. Set it when used, to reduce the number of messages.

Signed-off-by: John Thacker <johnthacker@gmail.com>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
2 days agodocs-xml: Document samba-tool subcommand to generate Certificate Signing Requests
Jennifer Sutton [Mon, 3 Nov 2025 03:50:52 +0000 (16:50 +1300)] 
docs-xml: Document samba-tool subcommand to generate Certificate Signing Requests

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Autobuild-User(master): Douglas Bagnall <dbagnall@samba.org>
Autobuild-Date(master): Wed Nov  5 05:13:01 UTC 2025 on atb-devel-224

2 days agosamba-tool: Add subcommand to generate Certificate Signing Requests with SID extension
Jennifer Sutton [Wed, 8 Oct 2025 01:34:25 +0000 (14:34 +1300)] 
samba-tool: Add subcommand to generate Certificate Signing Requests with SID extension

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 days agopython: Factor out asn.1 methods into their own module
Jennifer Sutton [Sun, 2 Nov 2025 21:45:44 +0000 (10:45 +1300)] 
python: Factor out asn.1 methods into their own module

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 days agosamba-tool: Fix comments
Jennifer Sutton [Tue, 7 Oct 2025 21:58:53 +0000 (10:58 +1300)] 
samba-tool: Fix comments

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 days agopython:tests: Fix code spelling
Jennifer Sutton [Thu, 23 Oct 2025 23:25:15 +0000 (12:25 +1300)] 
python:tests: Fix code spelling

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
3 days agovfs_recycle: Make recycle:touch/touch_mtime work again if recycle:keeptree is set
Pavel Filipenský [Fri, 24 Oct 2025 22:24:35 +0000 (00:24 +0200)] 
vfs_recycle: Make recycle:touch/touch_mtime work again if recycle:keeptree is set

Problem: Since commit c7839fa smbd: Remove non_widelink_open()

the atime/mtime is not updated if recycle:keeptree is set

        recycle:keeptree = yes
        recycle:touch = yes
        recycle:touch_mtime = yes

Cause: recycle_do_touch() fails since the path ".deleted/administrator/./file"
contains a dot '.' - openat_pathref_fsp_nosymlink() loops over all
components and fails if there is a dot:

[2025/10/24 20:09:24.618003, 10, pid=95965, effective(65534, 65534), real(65534, 0)] ../../source3/smbd/files.c:1144(openat_pathref_fsp_nosymlink)
  openat_pathref_fsp_nosymlink: .deleted/administrator/. contains a dot
[2025/10/24 20:09:24.618007,  5, pid=95965, effective(65534, 65534), real(65534, 0)] ../../source3/smbd/files.c:2337(file_free)
  file_free: freed files structure 0 (4 used)
[2025/10/24 20:09:24.618010, 10, pid=95965, effective(65534, 65534), real(65534, 0)] ../../source3/smbd/filename.c:811(filename_convert_dirfsp_nosymlink)
  filename_convert_dirfsp_nosymlink: opening directory .deleted/administrator/. failed: NT_STATUS_OBJECT_NAME_INVALID
[2025/10/24 20:09:24.618014, 10, pid=95965, effective(65534, 65534), real(65534, 0)] ../../source3/smbd/open.c:568(fd_openat)
  fd_openat: filename_convert_dirfsp_rel returned NT_STATUS_OBJECT_PATH_NOT_FOUND
[2025/10/24 20:09:24.618021, 10, pid=95965, effective(65534, 65534), real(65534, 0)] ../../source3/smbd/files.c:487(openat_pathref_fullname)
  openat_pathref_fullname: Opening pathref for [.deleted/administrator/./file] failed: NT_STATUS_OBJECT_NAME_NOT_FOUND

Here is a backtrace when openat_pathref_fsp_nosymlink() hits: DBG_DEBUG("%s contains a dot\n", path_in);

0  openat_pathref_fsp_nosymlink (mem_ctx=0x353463c0, conn=0x35322350, in_dirfsp=0x3532a820, path_in=0x3533afe0 ".trash/.", twrp=0, posix=true, _smb_fname=0x7ffdb25df138, _symlink_err=0x7ffdb25df140) at ../../source3/smbd/files.c:1144
1  filename_convert_dirfsp_nosymlink (mem_ctx=0x353463c0, conn=0x35322350, basedir=0x3532a820, name_in=0x35321a80 ".trash/./mmm", ucf_flags=8, twrp=0, _dirfsp=0x7ffdb25df370, _smb_fname=0x7ffdb25df378, _smb_fname_rel=0x7ffdb25df380, _symlink_err=0x7ffdb25df2d8) at ../../source3/smbd/filename.c:782
2  filename_convert_dirfsp_rel (mem_ctx=0x353463c0, conn=0x35322350, basedir=0x3532a820, name_in=0x35321a80 ".trash/./mmm", ucf_flags=8, twrp=0, _dirfsp=0x7ffdb25df370, _smb_fname=0x7ffdb25df378, _smb_fname_rel=0x7ffdb25df380) at ../../source3/smbd/filename.c:1097
3  fd_openat (dirfsp=0x3532a820, smb_fname=0x35321950, fsp=0x3531b670, _how=0x7ffdb25df4b0) at ../../source3/smbd/open.c:549
4  openat_pathref_fullname (conn=0x35322350, dirfsp=0x3532a820, full_fname=0x7ffdb25df498, smb_fname=0x35321950, how=0x7ffdb25df4b0) at ../../source3/smbd/files.c:437
5  openat_pathref_fsp (dirfsp=0x3532a820, smb_fname=0x35321950) at ../../source3/smbd/files.c:545
6  synthetic_pathref (mem_ctx=0x353463c0, dirfsp=0x3532a820, base_name=0x35346ef0 ".trash/./mmm", stream_name=0x0, psbuf=0x0, twrp=0, flags=0, _smb_fname=0x7ffdb25df578) at ../../source3/smbd/files.c:1871
7  recycle_do_touch (handle=0x35311cb0, smb_fname=0x35346dc0, touch_mtime=true) at ../../source3/modules/vfs_recycle.c:439
8  recycle_unlink_internal (handle=0x35311cb0, dirfsp=0x352592a0, smb_fname=0x35335eb0, flags=0) at ../../source3/modules/vfs_recycle.c:726
9  recycle_unlinkat (handle=0x35311cb0, dirfsp=0x352592a0, smb_fname=0x35335eb0, flags=0) at ../../source3/modules/vfs_recycle.c:746
10 smb_vfs_call_unlinkat (handle=0x35311cb0, dirfsp=0x352592a0, smb_fname=0x35335eb0, flags=0) at ../../source3/smbd/vfs.c:1987
11 close_remove_share_mode (fsp=0x35344a40, close_type=NORMAL_CLOSE) at ../../source3/smbd/close.c:624
12 close_normal_file (req=0x35336eb0, fsp=0x35344a40, close_type=NORMAL_CLOSE) at ../../source3/smbd/close.c:932
13 close_file_smb (req=0x35336eb0, fsp=0x35344a40, close_type=NORMAL_CLOSE) at ../../source3/smbd/close.c:1414

Fix: If the path_name is '.', just do not add it.

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

Signed-off-by: Pavel Filipenský <pfilipensky@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Autobuild-User(master): Pavel Filipensky <pfilipensky@samba.org>
Autobuild-Date(master): Tue Nov  4 11:38:52 UTC 2025 on atb-devel-224

3 days agovfs_recycle: Fix trailing whitespace in vfs_recycle.c
Pavel Filipenský [Fri, 24 Oct 2025 22:24:33 +0000 (00:24 +0200)] 
vfs_recycle: Fix trailing whitespace in vfs_recycle.c

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

Signed-off-by: Pavel Filipenský <pfilipensky@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
3 days agoselftest: Add a test for recycle:touch,touch_mtime,keeptree
Pavel Filipenský [Sun, 26 Oct 2025 20:01:40 +0000 (21:01 +0100)] 
selftest: Add a test for recycle:touch,touch_mtime,keeptree

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

Signed-off-by: Pavel Filipenský <pfilipensky@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
3 days agoRemove previous himmelblau integration attempt
David Mulder [Thu, 28 Aug 2025 19:09:36 +0000 (13:09 -0600)] 
Remove previous himmelblau integration attempt

This was a project attempting to integrate
Himmelblau into Samba, but it has been
abandoned.

Signed-off-by: David Mulder <dmulder@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Autobuild-User(master): David Mulder <dmulder@samba.org>
Autobuild-Date(master): Tue Nov  4 09:09:40 UTC 2025 on atb-devel-224

8 days agonsswitch: Do not leak memory in wbinfo_pam_logon() of wbinfo
Andreas Schneider [Wed, 22 Oct 2025 09:47:43 +0000 (11:47 +0200)] 
nsswitch: Do not leak memory in wbinfo_pam_logon() of wbinfo

We need to always free the memory, not only if verbose mode is wanted.

Direct leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7f4df73215a3 in calloc (/lib64/libasan.so.8+0x1215a3) (BuildId: 388ee9ac193f74c177c6f52988d2d0dab110de41)
    #1 0x7f4df712833f in wbcAllocateMemory ../../nsswitch/libwbclient/wbclient.c:216
    #2 0x7f4df712d996 in wbc_create_logon_info ../../nsswitch/libwbclient/wbc_pam.c:326
    #3 0x7f4df712d996 in wbcCtxLogonUser ../../nsswitch/libwbclient/wbc_pam.c:1288
    #4 0x7f4df712dda5 in wbcLogonUser ../../nsswitch/libwbclient/wbc_pam.c:1311
    #5 0x00000021c014 in wbinfo_pam_logon ../../nsswitch/wbinfo.c:1995
    #6 0x00000021c014 in main ../../nsswitch/wbinfo.c:3209
    #7 0x7f4df422b2fa in __libc_start_call_main (/lib64/libc.so.6+0x2b2fa) (BuildId: 8523b213e7586a93ab00f6dd476418b1e521e62c)
    #8 0x7ffc9aee3e03  ([stack]+0x20e03)

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
Autobuild-User(master): Anoop C S <anoopcs@samba.org>
Autobuild-Date(master): Thu Oct 30 09:11:26 UTC 2025 on atb-devel-224

9 days agovfs_streams_xattr: Fix CID 1667321 REVERSE_INULL
Shwetha K Acharya [Wed, 29 Oct 2025 11:12:47 +0000 (16:42 +0530)] 
vfs_streams_xattr: Fix CID 1667321 REVERSE_INULL

Remove NULL check for fsp. A NULL fsp is a fatal error
that should never occur in this context.

Signed-off-by: Shwetha K Acharya <Shwetha.K.Acharya@ibm.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
Autobuild-User(master): Anoop C S <anoopcs@samba.org>
Autobuild-Date(master): Wed Oct 29 14:43:28 UTC 2025 on atb-devel-224

9 days agovfs_streams_xattr: Fix CID 1667323 Resource Leak
Shwetha K Acharya [Tue, 28 Oct 2025 06:06:04 +0000 (11:36 +0530)] 
vfs_streams_xattr: Fix CID 1667323 Resource Leak

val was not freed on early return paths; addressed it using
done block.

Signed-off-by: Shwetha K Acharya <Shwetha.K.Acharya@ibm.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
9 days agolib:ldb:tests: Fix memory leaks in ldb_lmdb_free_list_test
Andreas Schneider [Mon, 14 Oct 2024 13:52:53 +0000 (15:52 +0200)] 
lib:ldb:tests: Fix memory leaks in ldb_lmdb_free_list_test

Found by Leak Sanitizer

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Anoop C S <anoopcs@samba.org>
Autobuild-User(master): Anoop C S <anoopcs@samba.org>
Autobuild-Date(master): Wed Oct 29 12:18:43 UTC 2025 on atb-devel-224

9 days agolib:ldb:tests: Avoid memory leaks in ldb_kv_ops test
Andreas Schneider [Mon, 14 Oct 2024 13:33:29 +0000 (15:33 +0200)] 
lib:ldb:tests: Avoid memory leaks in ldb_kv_ops test

Detected by Leak Sanitizer.

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Anoop C S <anoopcs@samba.org>
12 days agoWHATSNEW: Mention MR 4212
Volker Lendecke [Wed, 22 Oct 2025 05:13:29 +0000 (07:13 +0200)] 
WHATSNEW: Mention MR 4212

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Sun Oct 26 09:10:57 UTC 2025 on atb-devel-224

2 weeks agos3:client: Use talloc to avoid memory leaks in smbspool
Andreas Schneider [Wed, 22 Oct 2025 09:24:24 +0000 (11:24 +0200)] 
s3:client: Use talloc to avoid memory leaks in smbspool

The function uri_unescape_alloc() is called by main() which has a talloc
stackframe.

Direct leak of 13 byte(s) in 1 object(s) allocated from:
    #0 0x7fc31351b9a0 in strdup (/lib64/libasan.so.8+0x11b9a0) (BuildId: 388ee9ac193f74c177c6f52988d2d0dab110de41)
    #1 0x7fc3129cfb50 in smb_xstrdup ../../lib/util/util.c:760
    #2 0x0000002059f8 in uri_unescape_alloc ../../source3/client/smbspool.c:888
    #3 0x00000020752a in main ../../source3/client/smbspool.c:347
    #4 0x7fc30f62b2fa in __libc_start_call_main (/lib64/libc.so.6+0x2b2fa) (BuildId: 8523b213e7586a93ab00f6dd476418b1e521e62c)
    #5 0x7ffd8bb806be  ([stack]+0x3b6be)

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
Autobuild-User(master): Anoop C S <anoopcs@samba.org>
Autobuild-Date(master): Fri Oct 24 07:42:37 UTC 2025 on atb-devel-224

2 weeks agodocs-xml: Document SID extension certificate mappings
Jennifer Sutton [Tue, 14 Oct 2025 04:05:20 +0000 (17:05 +1300)] 
docs-xml: Document SID extension certificate mappings

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Autobuild-User(master): Jennifer Sutton <jsutton@samba.org>
Autobuild-Date(master): Thu Oct 23 01:03:36 UTC 2025 on atb-devel-224

2 weeks agos4:kdc: Implement Object SID certificate security extension
Jennifer Sutton [Mon, 25 Aug 2025 00:40:09 +0000 (12:40 +1200)] 
s4:kdc: Implement Object SID certificate security extension

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 weeks agothird_party/heimdal: Import lorikeet-heimdal-202510122217 (commit c2d91bdde528ba018da...
Jennifer Sutton [Sun, 12 Oct 2025 22:25:48 +0000 (11:25 +1300)] 
third_party/heimdal: Import lorikeet-heimdal-202510122217 (commit c2d91bdde528ba018da27b88baa22b46f323f659)

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 weeks agos4:kdc: Don’t leak pub_keys.keys
Jennifer Sutton [Thu, 9 Oct 2025 04:09:40 +0000 (17:09 +1300)] 
s4:kdc: Don’t leak pub_keys.keys

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 weeks agos4:kdc: Move talloc_steal() back to function end
Jennifer Sutton [Fri, 3 Oct 2025 02:14:00 +0000 (15:14 +1300)] 
s4:kdc: Move talloc_steal() back to function end

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 weeks agos4:kdc: Correct debug messages
Jennifer Sutton [Fri, 3 Oct 2025 02:12:19 +0000 (15:12 +1300)] 
s4:kdc: Correct debug messages

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 weeks agos4:kdc: Correct comments
Jennifer Sutton [Fri, 3 Oct 2025 02:11:36 +0000 (15:11 +1300)] 
s4:kdc: Correct comments

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 weeks agotests/krb5: Add tests for the Object SID certificate security extension
Jennifer Sutton [Fri, 3 Oct 2025 01:31:30 +0000 (14:31 +1300)] 
tests/krb5: Add tests for the Object SID certificate security extension

View with ‘git show -b’.

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 weeks agotests/krb5: Remove unused imports
Jennifer Sutton [Fri, 3 Oct 2025 01:29:51 +0000 (14:29 +1300)] 
tests/krb5: Remove unused imports

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 weeks agotests/krb5: Remove unused method
Jennifer Sutton [Fri, 3 Oct 2025 01:30:24 +0000 (14:30 +1300)] 
tests/krb5: Remove unused method

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 weeks agodocs-xml: Correct documentation
Jennifer Sutton [Fri, 3 Oct 2025 01:24:59 +0000 (14:24 +1300)] 
docs-xml: Correct documentation

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 weeks agos4:kdc: Correct spelling
Jennifer Sutton [Fri, 3 Oct 2025 01:17:42 +0000 (14:17 +1300)] 
s4:kdc: Correct spelling

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 weeks agos3:passdb: Fix memory leak in pdb_default_del_groupmem()
Andreas Schneider [Tue, 21 Oct 2025 09:08:30 +0000 (11:08 +0200)] 
s3:passdb: Fix memory leak in pdb_default_del_groupmem()

Indirect leak of 496 byte(s) in 1 object(s) allocated from:
    #0 0x7f1e45121c2b in malloc (/lib64/libasan.so.8+0x121c2b) (BuildId: 388ee9ac193f74c177c6f52988d2d0dab110de41)
    #1 0x7f1e44b586a0 in __talloc_with_prefix ../../lib/talloc/talloc.c:783
    #2 0x7f1e44b59f75 in __talloc ../../lib/talloc/talloc.c:825
    #3 0x7f1e44b59f75 in _talloc_named_const ../../lib/talloc/talloc.c:982
    #4 0x7f1e44b59f75 in _talloc_zero ../../lib/talloc/talloc.c:2421
    #5 0x7f1e42a18460 in samu_new ../../source3/passdb/passdb.c:63
    #6 0x7f1e42a381ef in pdb_default_del_groupmem ../../source3/passdb/pdb_interface.c:1098
    #7 0x7f1e42a364b1 in pdb_del_groupmem ../../source3/passdb/pdb_interface.c:1130
    #8 0x000000388a57 in net_sam_delmem ../../source3/utils/net_sam.c:1324
    #9 0x00000038ff79 in net_run_function ../../source3/utils/net_util.c:451
    #10 0x00000038bfb6 in net_sam ../../source3/utils/net_sam.c:2306
    #11 0x00000038ff79 in net_run_function ../../source3/utils/net_util.c:451
    #12 0x0000002ea182 in main ../../source3/utils/net.c:1474
    #13 0x7f1e3fc2b2fa in __libc_start_call_main (/lib64/libc.so.6+0x2b2fa) (BuildId: 8523b213e7586a93ab00f6dd476418b1e521e62c)
    #14 0x7ffe6b22b79f  ([stack]+0x2079f)

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
Autobuild-User(master): Anoop C S <anoopcs@samba.org>
Autobuild-Date(master): Wed Oct 22 15:21:22 UTC 2025 on atb-devel-224

2 weeks agos3:passdb: Fix memory leak in pdb_default_add_groupmem()
Andreas Schneider [Tue, 21 Oct 2025 08:30:29 +0000 (10:30 +0200)] 
s3:passdb: Fix memory leak in pdb_default_add_groupmem()

Indirect leak of 496 byte(s) in 1 object(s) allocated from:
    #0 0x7f068f921c2b in malloc (/lib64/libasan.so.8+0x121c2b) (BuildId: 388ee9ac193f74c177c6f52988d2d0dab110de41)
    #1 0x7f068f4266a0 in __talloc_with_prefix ../../lib/talloc/talloc.c:783
    #2 0x7f068f427f75 in __talloc ../../lib/talloc/talloc.c:825
    #3 0x7f068f427f75 in _talloc_named_const ../../lib/talloc/talloc.c:982
    #4 0x7f068f427f75 in _talloc_zero ../../lib/talloc/talloc.c:2421
    #5 0x7f068cbba260 in samu_new ../../source3/passdb/passdb.c:63
    #6 0x7f068cbda444 in pdb_default_add_groupmem ../../source3/passdb/pdb_interface.c:1022
    #7 0x7f068cbd825d in pdb_add_groupmem ../../source3/passdb/pdb_interface.c:1054
    #8 0x000000389322 in net_sam_addmem ../../source3/utils/net_sam.c:1255
    #9 0x00000038ff79 in net_run_function ../../source3/utils/net_util.c:451
    #10 0x00000038bfb6 in net_sam ../../source3/utils/net_sam.c:2306
    #11 0x00000038ff79 in net_run_function ../../source3/utils/net_util.c:451
    #12 0x0000002ea182 in main ../../source3/utils/net.c:1474
    #13 0x7f068a42b2fa in __libc_start_call_main (/lib64/libc.so.6+0x2b2fa) (BuildId: 8523b213e7586a93ab00f6dd476418b1e521e62c)
    #14 0x7ffe0a90b7a1  ([stack]+0x207a1)

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
2 weeks agolib:ldb:tools: Do not leak memory in ldb_cmdline_process_internal()
Andreas Schneider [Wed, 22 Oct 2025 07:33:56 +0000 (09:33 +0200)] 
lib:ldb:tools: Do not leak memory in ldb_cmdline_process_internal()

If add_control() hasn't been called before, it will be NULL. Use ret as
the context to allocate memory on.

Direct leak of 110 byte(s) in 1 object(s) allocated from:
    #0 0x7fc1b5921c2b in malloc (/lib64/libasan.so.8+0x121c2b) (BuildId: 388ee9ac193f74c177c6f52988d2d0dab110de41)
    #1 0x7fc1b56ed6a0 in __talloc_with_prefix ../../lib/talloc/talloc.c:783
    #2 0x7fc1b56ee9e8 in __talloc ../../lib/talloc/talloc.c:825
    #3 0x7fc1b56ee9e8 in __talloc_strlendup ../../lib/talloc/talloc.c:2454
    #4 0x7fc1b56ee9e8 in talloc_strdup ../../lib/talloc/talloc.c:2470
    #5 0x7fc1b5f1ad18 in ldb_cmdline_process_internal ../../lib/ldb/tools/cmdline.c:389
    #6 0x7fc1b5f1b53c in ldb_cmdline_process ../../lib/ldb/tools/cmdline.c:544
    #7 0x000000202a19 in main ../../lib/ldb/tools/ldbdel.c:97
    #8 0x7fc1b542b2fa in __libc_start_call_main (/lib64/libc.so.6+0x2b2fa) (BuildId: 8523b213e7586a93ab00f6dd476418b1e521e62c)
    #9 0x7ffdced96847  ([stack]+0x38847)

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): Wed Oct 22 09:25:35 UTC 2025 on atb-devel-224

2 weeks agolib:ldb:tools: Remove trailing spaces in cmdline.c
Andreas Schneider [Wed, 22 Oct 2025 07:38:20 +0000 (09:38 +0200)] 
lib:ldb:tools: Remove trailing spaces in cmdline.c

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
2 weeks agonsswitch: Fix memory leak in wbinfo_xids_to_sids()
Andreas Schneider [Wed, 22 Oct 2025 07:36:50 +0000 (09:36 +0200)] 
nsswitch: Fix memory leak in wbinfo_xids_to_sids()

We should not allocate on the NULL context.

=================================================================
==313033==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 376 byte(s) in 1 object(s) allocated from:
    #0 0x7ff48b520b4b  (/lib64/libasan.so.8+0x120b4b) (BuildId: 388ee9ac193f74c177c6f52988d2d0dab110de41)
    #1 0x7ff48bb079d3 in _talloc_realloc ../../lib/talloc/talloc.c:2035
    #2 0x7ff48bb0824c in _talloc_realloc_array ../../lib/talloc/talloc.c:2810
    #3 0x00000021ab91 in wbinfo_xids_to_sids ../../nsswitch/wbinfo.c:1122
    #4 0x00000021ab91 in main ../../nsswitch/wbinfo.c:3065
    #5 0x7ff48842b2fa in __libc_start_call_main (/lib64/libc.so.6+0x2b2fa) (BuildId: 8523b213e7586a93ab00f6dd476418b1e521e62c)
    #6 0x7ffd3dc6866e  ([stack]+0x2066e)

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Noel Power <npower@samba.org>
2 weeks agolib:replace: Implement setproctitle() based on PRCTL_MM_MAP
Andreas Schneider [Fri, 17 Oct 2025 08:16:30 +0000 (10:16 +0200)] 
lib:replace: Implement setproctitle() based on PRCTL_MM_MAP

This should work on Linux. It requires CAP_SYS_RESOURCE, but our daemons
run as root anyway.

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Wed Oct 22 08:03:35 UTC 2025 on atb-devel-224

2 weeks agolib:replace: Remove trailing spaces
Andreas Schneider [Fri, 17 Oct 2025 08:18:02 +0000 (10:18 +0200)] 
lib:replace: Remove trailing spaces

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
2 weeks agolib:replace: There is special code already to check for HAVE_PRCTL
Andreas Schneider [Fri, 17 Oct 2025 08:15:12 +0000 (10:15 +0200)] 
lib:replace: There is special code already to check for HAVE_PRCTL

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
2 weeks agoCVE-2025-10230: s4:wins: restrict names fed to shell
Douglas Bagnall [Wed, 3 Sep 2025 02:20:24 +0000 (14:20 +1200)] 
CVE-2025-10230: s4:wins: restrict names fed to shell

If the "wins hook" smb.conf parameter is set, the WINS server will
attempt to execute that value in a shell command line when a client
asks to modify a name. The WINS system is a trusting one, and clients
can claim any NETBIOS name they wish.

With the source3 nmbd WINS server (since the 1999 commit now called
3db52feb1f3b2c07ce0b06ad4a7099fa6efe3fc7) the wins hook will not be
run for names that contain shell metacharacters. This restriction has
not been present on the source4 nbt WINS server, which is the WINS
server that will be used in the event that an Active Directory Domain
Controller is also running WINS.

This allowed an unauthenticated client to execute arbitrary commands
on the server.

This commit brings the nmbd check into the nbt WINS server, so that
the wins hook will only be run for names that contain only letters,
digits, hyphens, underscores and periods. This matches the behaviour
described in the smb.conf man page.

The source3 nmbd WINS server has another layer of protection, in that
it uses the smb_run() exec wrapper that tries to escape arguments. We
don't do that here.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Autobuild-User(master): Douglas Bagnall <dbagnall@samba.org>
Autobuild-Date(master): Tue Oct 21 19:43:25 UTC 2025 on atb-devel-224

2 weeks agoCVE-2025-10230: s4/tests: check that wins hook sanitizes names
Douglas Bagnall [Tue, 9 Sep 2025 01:36:16 +0000 (13:36 +1200)] 
CVE-2025-10230: s4/tests: check that wins hook sanitizes names

An smb.conf can contain a 'wins hook' parameter, which names a script
to run when a WINS name is changed. The man page says

    The second argument is the NetBIOS name. If the name is not a
    legal name then the wins hook is not called. Legal names contain
    only letters, digits, hyphens, underscores and periods.

but it turns out the legality check is not performed if the WINS
server in question is the source4 nbt one. It is not expected that
people will run this server, but they can. This is bad because the
name is passed unescaped into a shell command line, allowing command
injection.

For this test we don't care whether the WINS server is returning an
error code, just whether it is running the wins hook. The tests show
it often runs the hook it shouldn't, though some characters are
incidentally blocked because the name has to fit in a DN before it
gets to the hook, and DNs have a few syntactic restrictions (e.g.,
blocking '<', '>', and ';').

The source3 WINS server that is used by Samba when not run as a DC is
not affected and not here tested.

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

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2 weeks agosmbd: Simplify smb2_parse_file_rename_information()
Volker Lendecke [Fri, 26 Sep 2025 08:40:45 +0000 (10:40 +0200)] 
smbd: Simplify smb2_parse_file_rename_information()

We don't really need "fsp" and "smb_fname_src" arguments anymore

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): Tue Oct 21 18:35:59 UTC 2025 on atb-devel-224

2 weeks agosmbd: Simplify smb2_parse_file_rename_information()
Volker Lendecke [Fri, 26 Sep 2025 08:25:42 +0000 (10:25 +0200)] 
smbd: Simplify smb2_parse_file_rename_information()

The caller in smb2_file_rename_information() does not need the
dst_dirfsp, factor out the filename_convert_dirfsp() code.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Remove "dst_original_lcomp" from smb2_parse_file_rename_information()
Volker Lendecke [Thu, 25 Sep 2025 06:55:34 +0000 (08:55 +0200)] 
smbd: Remove "dst_original_lcomp" from smb2_parse_file_rename_information()

Nobody uses it anymore

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agovfs: Remove streams_depot_renameat()
Volker Lendecke [Wed, 24 Sep 2025 13:48:58 +0000 (15:48 +0200)] 
vfs: Remove streams_depot_renameat()

Not used anymore except for passing on to _NEXT_

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agovfs: Remove streams_xattr_renameat()
Volker Lendecke [Wed, 24 Sep 2025 13:47:32 +0000 (15:47 +0200)] 
vfs: Remove streams_xattr_renameat()

Not used anymore except for passing on to _NEXT_

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Remove "dst_original_lcomp" from smb2_parse_file_rename_information()
Volker Lendecke [Thu, 25 Sep 2025 06:55:34 +0000 (08:55 +0200)] 
smbd: Remove "dst_original_lcomp" from smb2_parse_file_rename_information()

Nobody uses it anymore

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Remove unused parameters from rename_internals()
Volker Lendecke [Wed, 24 Sep 2025 13:12:17 +0000 (15:12 +0200)] 
smbd: Remove unused parameters from rename_internals()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Remove an unnecessary return;
Volker Lendecke [Sat, 20 Sep 2025 00:17:06 +0000 (17:17 -0700)] 
smbd: Remove an unnecessary return;

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Remove unused parameters from rename_internals_fsp()
Volker Lendecke [Wed, 24 Sep 2025 12:58:49 +0000 (14:58 +0200)] 
smbd: Remove unused parameters from rename_internals_fsp()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Rewrite rename_internals_fsp()
Volker Lendecke [Wed, 24 Sep 2025 12:49:21 +0000 (14:49 +0200)] 
smbd: Rewrite rename_internals_fsp()

With SMB_VFS_RENAME_STREAM and the src parent fsp and src relname
available, we can save a lot of string handling in
rename_internals_fsp(). Subsequent patches will remove a lot of code
that's no longer used after this patch.

Better look at the result than the patch for review.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agovfs: Add streams_depot implementation of rename_stream()
Volker Lendecke [Mon, 22 Sep 2025 15:05:08 +0000 (17:05 +0200)] 
vfs: Add streams_depot implementation of rename_stream()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agovfs: Add streams_xattr implementation of rename_stream()
Volker Lendecke [Fri, 19 Sep 2025 18:02:25 +0000 (11:02 -0700)] 
vfs: Add streams_xattr implementation of rename_stream()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agovfs: Add SMB_VFS_RENAME_STREAM
Volker Lendecke [Mon, 22 Sep 2025 13:55:57 +0000 (15:55 +0200)] 
vfs: Add SMB_VFS_RENAME_STREAM

[MS-FSA] 2.1.5.15.12.1 Algorithm for Performing Stream Rename

is simpler and diffent enough from renaming a file or directory that I
believe a separate VFS operation is justified instead of tunneling it
through the renameat call. For example it's only possible to rename
streams within a file, so only one stream open fsp and a newname which
is guaranteed to be a stream name is necessary.

Add stub implementations to our streams modules, to be filled later.

Signed-off-by: Volker Lendecke <vl@samba.org>
vfs_streams_xattr: rename_streams
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agovfs_streams_xattr: Return whether a stream name is ::$DATA
Volker Lendecke [Wed, 24 Sep 2025 12:04:49 +0000 (14:04 +0200)] 
vfs_streams_xattr: Return whether a stream name is ::$DATA

Not trivial to find from the converted name due to the
streams_xattr:store_stream_type config option. To be used in the
stream_rename operation.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Slightly simplify rename_internals
Volker Lendecke [Sun, 21 Sep 2025 12:18:47 +0000 (14:18 +0200)] 
smbd: Slightly simplify rename_internals

This is what "||" is for...

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Pass fsp instead of filename for parent to open_directory()
Volker Lendecke [Wed, 17 Sep 2025 14:03:20 +0000 (07:03 -0700)] 
smbd: Pass fsp instead of filename for parent to open_directory()

Everybody referenced parent_dir_fname->fsp

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Pass fsp instead of filename for parent to open_file_ntcreate()
Volker Lendecke [Wed, 17 Sep 2025 14:00:36 +0000 (07:00 -0700)] 
smbd: Pass fsp instead of filename for parent to open_file_ntcreate()

Everybody referenced parent_dir_fname->fsp

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Pass fsp instead of filename for parent to possibly_set_archive()
Volker Lendecke [Wed, 17 Sep 2025 13:57:42 +0000 (06:57 -0700)] 
smbd: Pass fsp instead of filename for parent to possibly_set_archive()

Lift the ->fsp dereference up one level

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Pass fsp instead of filename for parent to mkdir_internals()
Volker Lendecke [Wed, 17 Sep 2025 13:55:57 +0000 (06:55 -0700)] 
smbd: Pass fsp instead of filename for parent to mkdir_internals()

parent_dir_fname->fsp was referenced almost everywhere

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Slightly simplify mkdir_internal()
Volker Lendecke [Wed, 17 Sep 2025 13:49:49 +0000 (06:49 -0700)] 
smbd: Slightly simplify mkdir_internal()

Save a few lines by moving the NULL check out of the if-branches. Swap
branches to avoid a ! in the condition, makes it easier to read for me.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Pass fsp instead of filename for parent to file_set_dosmode
Volker Lendecke [Wed, 17 Sep 2025 13:46:51 +0000 (06:46 -0700)] 
smbd: Pass fsp instead of filename for parent to file_set_dosmode

Avoids a call to PARENT_PATHNAME in copy_internals()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Move a variable declaration closer to its use
Volker Lendecke [Wed, 17 Sep 2025 13:05:52 +0000 (06:05 -0700)] 
smbd: Move a variable declaration closer to its use

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Simplify rename_internals_fsp()
Volker Lendecke [Thu, 18 Sep 2025 19:50:57 +0000 (12:50 -0700)] 
smbd: Simplify rename_internals_fsp()

Use a new talloc_stackframe to simplify cleanup. I hope Coverity gets
this.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Pass src_dirfsp, src_relname and raw newname to rename_internals_fsp()
Volker Lendecke [Wed, 17 Sep 2025 22:51:05 +0000 (15:51 -0700)] 
smbd: Pass src_dirfsp, src_relname and raw newname to rename_internals_fsp()

Will make way for some simplification soon

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Fix indentation of rename_internals[_fsp] params
Volker Lendecke [Sat, 13 Sep 2025 11:46:52 +0000 (13:46 +0200)] 
smbd: Fix indentation of rename_internals[_fsp] params

Next patches add params

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Return newname from smb2_parse_file_rename_information()
Volker Lendecke [Wed, 17 Sep 2025 22:46:37 +0000 (15:46 -0700)] 
smbd: Return newname from smb2_parse_file_rename_information()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Simplify hardlink_internals()
Volker Lendecke [Tue, 16 Sep 2025 20:15:39 +0000 (13:15 -0700)] 
smbd: Simplify hardlink_internals()

Avoid calling parent_pathref() in hardlink_internals. All but one
callers have the required information anyway. Unfortunately the one
that does not have it is the SMB2 one. So for SMB2+ this is not a real
optimization, but in some distant future we might have a dirfsp
attached to every fsp, so this might at some point also solve itself.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Consolidate [smb|smb2]_file_link_information code
Volker Lendecke [Mon, 15 Sep 2025 18:50:00 +0000 (11:50 -0700)] 
smbd: Consolidate [smb|smb2]_file_link_information code

Those two functions were the same except for pulling the dst name.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Use fsp_is_alternate_stream()
Volker Lendecke [Sat, 13 Sep 2025 09:54:35 +0000 (11:54 +0200)] 
smbd: Use fsp_is_alternate_stream()

This is more descriptive than just checking fsp->base_fsp

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Remove a temp variable used only once
Volker Lendecke [Sat, 13 Sep 2025 09:50:24 +0000 (11:50 +0200)] 
smbd: Remove a temp variable used only once

We use talloc_tos() as function argument in a lot of places already.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Remove a few unnecessary NULL checks
Volker Lendecke [Sat, 13 Sep 2025 09:47:42 +0000 (11:47 +0200)] 
smbd: Remove a few unnecessary NULL checks

These functions are only called from smbd_do_setfilepathinfo() which
has checked with SMB_ASSERT(fsp != NULL).

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Align [smb|smb2]_file_link_information code
Volker Lendecke [Mon, 15 Sep 2025 18:35:46 +0000 (11:35 -0700)] 
smbd: Align [smb|smb2]_file_link_information code

The next patch will merge them into one function. Make it obvious in a separate
patch that they are the same except for parsing the input buffer.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Reduce indentation in smb2_parse_file_rename_information()
Volker Lendecke [Sat, 13 Sep 2025 20:34:00 +0000 (22:34 +0200)] 
smbd: Reduce indentation in smb2_parse_file_rename_information()

Avoid an "else"

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Simplify hardlink_internals()
Volker Lendecke [Mon, 15 Sep 2025 13:04:06 +0000 (06:04 -0700)] 
smbd: Simplify hardlink_internals()

All callers have easy access to the "new" parent dirfsp and the new
lcomp. Use those to avoid a call to parent_pathref() in
hardlink_internals().

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Pass "dirfsp" and the new relname to smb_set_file_unix_hlink()
Volker Lendecke [Mon, 15 Sep 2025 03:10:58 +0000 (20:10 -0700)] 
smbd: Pass "dirfsp" and the new relname to smb_set_file_unix_hlink()

Will be passed on next

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Modernize DEBUGs
Volker Lendecke [Mon, 15 Sep 2025 00:04:03 +0000 (17:04 -0700)] 
smbd: Modernize DEBUGs

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agovfs: Rename "srcfsp"->"src_dirfsp" and "dstfsp"->"dst_dirfsp"
Volker Lendecke [Sat, 13 Sep 2025 14:06:57 +0000 (16:06 +0200)] 
vfs: Rename "srcfsp"->"src_dirfsp" and "dstfsp"->"dst_dirfsp"

Do this in linkat() and renameat() routines. Some modules already had
this, unify on our current convention to name directory fsps.

Looks much larger than it is, most is coming from "git clang-format".

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Slightly simplify smbd_do_qfilepathinfo()
Volker Lendecke [Sat, 13 Sep 2025 10:20:34 +0000 (12:20 +0200)] 
smbd: Slightly simplify smbd_do_qfilepathinfo()

Use metadata_fsp() instead of explicitly checking fsp->base_fsp

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2 weeks agosmbd: Use fsp_str_dbg() in DEBUGs
Volker Lendecke [Fri, 12 Sep 2025 17:16:28 +0000 (19:16 +0200)] 
smbd: Use fsp_str_dbg() in DEBUGs

This removes "git grep fsp_name->base_name" references.

Referencing fsp_name->base_name is potentially racy and affected by

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

This removes some obvious git grep lines, still leaving far too many...

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>