Andrew Bartlett [Mon, 11 Mar 2019 22:46:42 +0000 (11:46 +1300)]
dsdb: Remove OpenLDAP backend complexity from samba_dsdb module
Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Nadezhda Ivanova <nivanova@symas.com>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Fri Aug 30 09:50:25 UTC 2019 on sn-devel-184
https://github.com/Symas/samba
and
https://github.com/Symas/samba_overlays
However discussions at SambaXP with Nadezhda Ivanova
indicate a new approach with slapd being started by Samba
and taught to read native Samba ldb files is more likely
in the short term.
This has the advantage that Samba's provision and offline
tooling would not need to change, with the solution looking
more like how BIND9_DLZ has access to the Samba DB.
If any of this is required then reverting these patches will be
the least of the difficulties in bringing this to production.
Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Nadezhda Ivanova <nivanova@symas.com>
Aaron Haslett [Thu, 28 Feb 2019 22:04:05 +0000 (11:04 +1300)]
paged results: tests without server_sort ctrl
On windows, adding or modifying a record during a paged results search
behaves differently depending on whether or not you supply server_sort
control. This patch adds tests and documentation.
Signed-off-by: Aaron Haslett <aaronhaslett@catalyst.net.nz> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Fri Aug 30 08:26:21 UTC 2019 on sn-devel-184
Aaron Haslett [Tue, 13 Aug 2019 06:14:12 +0000 (18:14 +1200)]
rpc samr: EnumDomainUsers perf improvement
EnumDomainUsers currently takes too long, significantly slowing down
calls to winbind's getpwent which is a core unix API. The time is taken
up by a GUID lookup for every record in the cached result. The advantages
of this approach are:
1. It meets the specified requirement that if a record yet to be returned
by a search in progress (with a resume handle) is deleted or
modified, the future returned results correctly reflect the
new changes.
2. Memory footprint for a search in progress is only 16 bytes per record.
But, those benefits are not worth the significant performance hit
of the lookups, so this patch changes the function to run the search
and cache the RIDs and names of all records matching the search when
the request is made. This makes the memory footprint around 200 bytes
per record or up to 2MB per concurrent search for a 100k user database.
The speedup achieved by this change is around 50%, and in tandem with
some winbindd improvements as part of the same task has achieved around
15x speedup for getpwent.
The lost specification compliance is unlikely to cause a problem for any
known usage of this RPC call.
Signed-off-by: Aaron Haslett <aaronhaslett@catalyst.net.nz> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Björn Jacke [Sat, 2 Mar 2019 04:47:20 +0000 (05:47 +0100)]
replace/setxattr: correctly use our flags on Darwin
Signed-off-by: Bjoern Jacke <bjacke@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Björn Jacke <bjacke@samba.org>
Autobuild-Date(master): Thu Aug 29 17:10:32 UTC 2019 on sn-devel-184
Björn Jacke [Sat, 2 Mar 2019 04:01:28 +0000 (05:01 +0100)]
replace/setxattr: set reasonable and unified errno value in case the EA value was too big
FreeBSD and AIX already set errno to ENAMETOOLONG, this is what we should map
other platforms also to to finally map to the correct NT error code also.
Signed-off-by: Bjoern Jacke <bjacke@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Noel Power [Fri, 9 Aug 2019 15:06:20 +0000 (16:06 +0100)]
s3/libsmb: clang: Fix 'Value stored during initialization is never read'
Fixes:
source3/libsmb/cliquota.c:340:11: warning: Value stored to 'status' during its initialization is never read <--[clang]
NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
source3/libsmb/cliquota.c:357:4: warning: Value stored to 'status' is never read <--[clang]
status = NT_STATUS_OK;
^ ~~~~~~~~~~~~
2 warnings generated.
Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Autobuild-User(master): Gary Lockyer <gary@samba.org>
Autobuild-Date(master): Wed Aug 28 03:06:42 UTC 2019 on sn-devel-184
Noel Power [Fri, 9 Aug 2019 15:02:18 +0000 (16:02 +0100)]
s3/libsmb: clang: Fix 'Value stored to 'status' is never read'
Fixes:
source3/libsmb/cliquota.c:340:11: warning: Value stored to 'status' during its initialization is never read <--[clang]
NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
/home/samba/samba/source3/libsmb/cliquota.c:357:4: warning: Value stored to 'status' is never read <--[clang]
status = NT_STATUS_OK;
^ ~~~~~~~~~~~~
2 warnings generated.
Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Noel Power [Thu, 8 Aug 2019 14:24:16 +0000 (15:24 +0100)]
s3/libsmb: clang: Fix 2nd function call argument is an uninitialized value
source3/libsmb/namequery.c:2719:11: warning: 2nd function call argument is an uninitialized value <--[clang]
if (!convert_ss2service(return_iplist,
^
source3/libsmb/namequery.c:2733:10: warning: 2nd function call argument is an uninitialized value <--[clang]
if (!convert_ss2service(return_iplist,
^ Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Noel Power [Thu, 8 Aug 2019 14:18:03 +0000 (15:18 +0100)]
s3/libsmb: clang: Fix Value set during its initialization is never read
Fixes:
source3/libsmb/namequery.c:2584:11: warning: Value stored to 'status' during its initialization is never read <--[clang]
NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Noel Power [Thu, 8 Aug 2019 13:59:55 +0000 (14:59 +0100)]
s3/libsmb: clang: Fix value stored to 'offset' is never read
Fixes:
source3/libsmb/nmblib.c:479:2: warning: Value stored to 'offset' is never read <--[clang]
offset += 10+rec->rdlength;
^ ~~~~~~~~~~~~~~~~
1 warning generated.
Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Noel Power [Wed, 14 Aug 2019 13:53:01 +0000 (14:53 +0100)]
s3/libsmb: clang: Fix 'warning: Assigned value is garbage or undefined '
Fixes:
source3/libsmb/clireadwrite.c:1259:17: warning: Assigned value is garbage or undefined <--[clang]
state->written += written;
^ ~~~~~~~
source3/libsmb/clireadwrite.c:1722:14: warning: The left operand of '>' is a garbage value <--[clang]
if (written > expected) {
~~~~~~~ ^
Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Autobuild-User(master): Gary Lockyer <gary@samba.org>
Autobuild-Date(master): Wed Aug 28 00:22:49 UTC 2019 on sn-devel-184
Noel Power [Wed, 14 Aug 2019 13:42:06 +0000 (14:42 +0100)]
s3/libsmb: clang: Fix 'The left operand of '>' or '<' is a garbage value
Fixes:
source3/libsmb/clireadwrite.c:601:15: warning: The left operand of '>' is a garbage value <--[clang]
if (received > expected) {
source3/libsmb/clireadwrite.c:799:16: warning: The left operand of '<' is a garbage value <--[clang]
if ((received < 0) || (received > state->buflen)) {
~~~~~~~~ ^
Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Noel Power [Wed, 14 Aug 2019 13:31:07 +0000 (14:31 +0100)]
libcli/auth: clang: Fix 'Value stored to 'status' is never read'
Fixes:
libcli/auth/netlogon_creds_cli.c:2622:2: warning: Value stored to 'status' is never read <--[clang]
status = netlogon_creds_decrypt_samlogon_validation(&state->tmp_creds,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Noel Power [Wed, 14 Aug 2019 13:28:16 +0000 (14:28 +0100)]
s3/libsmb: clang: Fix 'Value stored to 'p' is never read' warning
Fixes:
source3/libsmb/clirap2.c:1197:4: warning: Value stored to 'p' is never read <--[clang]
p += rap_getstringp(frame,
^ ~~~~~~~~~~~~~~~~~~~~~
source3/libsmb/clirap2.c:1525:5: warning: Value stored to 'p' is never read <--[clang]
p += rap_getstring(frame,
^ ~~~~~~~~~~~~~~~~~~~~
source3/libsmb/clirap2.c:2358:3: warning: Value stored to 'p' is never read <--[clang]
p += WORDSIZE; /* skip rsize */
^ ~~~~~~~~
source3/libsmb/clirap2.c:2380:3: warning: Value stored to 'p' is never read <--[clang]
p += rap_getstringp(frame,
^ ~~~~~~~~~~~~~~~~~~~~~
4 warnings generated.
Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Noel Power [Wed, 14 Aug 2019 11:21:32 +0000 (12:21 +0100)]
s3/libsmb: clang: Fix 'Value stored to 'ea_size' is never read'
Fixes:
source3/libsmb/clifile.c:5290:2: warning: Value stored to 'ea_size' is never read <--[clang]
ea_size = (size_t)IVAL(rdata,0);
^ ~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Noel Power [Wed, 14 Aug 2019 10:59:05 +0000 (11:59 +0100)]
s3/libsmb: clang: Fix 'Assigned value is garbage or undefined'
Fixes:
source3/libsmb/clifile.c:4898:10: warning: Assigned value is garbage or undefined <--[clang]
*bsize = (uint64_t)old_bsize;
^ ~~~~~~~~~~~~~~~~~~~
source3/libsmb/clifile.c:4901:10: warning: Assigned value is garbage or undefined <--[clang]
*total = (uint64_t)old_total;
^ ~~~~~~~~~~~~~~~~~~~
source3/libsmb/clifile.c:4904:10: warning: Assigned value is garbage or undefined <--[clang]
*avail = (uint64_t)old_avail;
Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Noel Power [Wed, 14 Aug 2019 10:40:46 +0000 (11:40 +0100)]
s3/libsmb: clang: Fix 'The left operand of '&' is a garbage value'
Fixes:
source3/libsmb/clifile.c:3108:26: warning: The left operand of '&' is a garbage value <--[clang]
(cr.file_attributes & FILE_ATTRIBUTE_DIRECTORY))
~~~~~~~~~~~~~~~~~~ ^
Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Andrew Bartlett [Mon, 26 Aug 2019 02:39:40 +0000 (14:39 +1200)]
WHATSNEW: Document new GnuTLS 3.4.7 requirement
Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Tue Aug 27 06:01:50 UTC 2019 on sn-devel-184