Volker Lendecke [Sat, 8 Nov 2025 09:37:55 +0000 (10:37 +0100)]
lib: Introduce cp_smb_basename() helper function
I always had to look up the sequence of NULLs and 0s. Save lines.
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Anoop C S <anoopcs@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Mon Nov 10 14:33:28 UTC 2025 on atb-devel-224
Volker Lendecke [Fri, 17 Oct 2025 12:39:18 +0000 (14:39 +0200)]
s3: talloc_destroy() -> TALLOC_FREE()
Sweeping change, I know. Should not change compiled code in most
cases, the compiler should be smart enough to elide the assignment
right before a return. In the cases where this is not right before the
return, TALLOC_FREE() is safer as it makes use-after-free crash.
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Anoop C S <anoopcs@samba.org>
s3-client: Use the passed down memory context for cli_connect_nb()
With the patches coming before this patch, we can use main talloc
context to allocate the connections on and make sure we only free them
after we don't need them anymore.
This fixes a lot of memory leaks found by LeakSanitizer. One example is:
Indirect leak of 4784 byte(s) in 13 object(s) allocated from:
#0 0x7fdb1ef21c2b in malloc (/lib64/libasan.so.8+0x121c2b) (BuildId: cbfe49f3b7600c4f194d4c54774c977296e9d98a)
#1 0x7fdb1ebbb6a0 in __talloc_with_prefix ../../lib/talloc/talloc.c:783
#2 0x7fdb1ebbcf75 in __talloc ../../lib/talloc/talloc.c:825
#3 0x7fdb1ebbcf75 in _talloc_named_const ../../lib/talloc/talloc.c:982
#4 0x7fdb1ebbcf75 in _talloc_zero ../../lib/talloc/talloc.c:2421
#5 0x7fdb1cfd1b25 in idr_pre_get ../../lib/util/idtree.c:98
#6 0x7fdb1cfd1b25 in idr_get_new_above_int ../../lib/util/idtree.c:202
#7 0x7fdb1cfd2c30 in idr_get_new_above ../../lib/util/idtree.c:368
#8 0x7fdb1de3246f in map_smb2_handle_to_fnum ../../source3/libsmb/cli_smb2_fnum.c:95
#9 0x7fdb1de3246f in cli_smb2_create_fnum_done ../../source3/libsmb/cli_smb2_fnum.c:438
#10 0x7fdb1dbaca05 in _tevent_req_notify_callback ../../lib/tevent/tevent_req.c:177
#11 0x7fdb1dbacc3c in tevent_req_finish ../../lib/tevent/tevent_req.c:234
#12 0x7fdb1dbacca4 in _tevent_req_done ../../lib/tevent/tevent_req.c:240
#13 0x7fdb1ed0eb35 in smb2cli_create_done ../../libcli/smb/smb2cli_create.c:483
#14 0x7fdb1dbaca05 in _tevent_req_notify_callback ../../lib/tevent/tevent_req.c:177
#15 0x7fdb1dbacc3c in tevent_req_finish ../../lib/tevent/tevent_req.c:234
#16 0x7fdb1dbacd74 in tevent_req_trigger ../../lib/tevent/tevent_req.c:291
#17 0x7fdb1dbaad1e in tevent_common_invoke_immediate_handler ../../lib/tevent/tevent_immediate.c:190
#18 0x7fdb1dbaad5b in tevent_common_loop_immediate ../../lib/tevent/tevent_immediate.c:236
#19 0x7fdb1dbbe42f in epoll_event_loop_once ../../lib/tevent/tevent_epoll.c:908
#20 0x7fdb1dbb7787 in std_event_loop_once ../../lib/tevent/tevent_standard.c:110
#21 0x7fdb1dba7466 in _tevent_loop_once ../../lib/tevent/tevent.c:860
#22 0x7fdb1dbad082 in tevent_req_poll ../../lib/tevent/tevent_req.c:342
#23 0x7fdb1eaa93d4 in tevent_req_poll_ntstatus ../../lib/util/tevent_ntstatus.c:109
#24 0x7fdb1de138bb in cli_list ../../source3/libsmb/clilist.c:1188
#25 0x000000239f0f in do_list ../../source3/client/client.c:853
#26 0x00000023a93a in cmd_dir ../../source3/client/client.c:936
#27 0x00000023f090 in process_stdin ../../source3/client/client.c:6215
#28 0x00000023f090 in process ../../source3/client/client.c:6269
#29 0x00000023f090 in main ../../source3/client/client.c:6811
#30 0x7fdb1ac2b2fa in __libc_start_call_main (/lib64/libc.so.6+0x2b2fa) (BuildId: 8523b213e7586a93ab00f6dd476418b1e521e62c)
#31 0x7ffd7d5613af ([stack]+0x3a3af)
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 Nov 6 09:58:52 UTC 2025 on atb-devel-224
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
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
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>
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>
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>
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.)
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>
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
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>
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>
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>
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>
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:
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
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
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
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
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
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>
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
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
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
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