ctdb: Fix a memleak
[samba.git] / WHATSNEW.txt
1                    ==============================
2                    Release Notes for Samba 4.12.1
3                            April 07, 2020
4                    ==============================
5
6
7 This is the latest stable release of the Samba 4.12 release series.
8
9
10 Changes since 4.12.0
11 --------------------
12
13 o  Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
14    * BUG 14295: nmblib: Avoid undefined behaviour in handle_name_ptrs().
15
16 o  Björn Baumbach <bb@sernet.de>
17    * BUG 14296: samba-tool group: Handle group names with special chars
18      correctly.
19
20 o  Ralph Boehme <slow@samba.org>
21    * BUG 14293: Add missing check for DMAPI offline status in async DOS
22      attributes.
23    * BUG 14295: Starting ctdb node that was powered off hard before results in
24      recovery loop.
25    * BUG 14307: smbd: Ignore set NTACL requests which contain S-1-5-88 NFS ACEs.
26    * BUG 14316: vfs_recycle: Prevent flooding the log if we're called on
27      non-existant paths.
28
29 o  Günther Deschner <gd@samba.org>
30    * BUG 14313: librpc: Fix IDL for svcctl_ChangeServiceConfigW.
31    * BUG 14327: nsswitch: Fix use-after-free causing segfault in 
32      _pam_delete_cred.
33
34 o  Art M. Gallagher <repos@artmg.net>
35    * BUG 13622: fruit:time machine max size is broken on arm.
36
37 o  Amitay Isaacs <amitay@gmail.com>
38    * BUG 14294: CTDB recovery corner cases can cause record resurrection and
39      node banning.
40
41 o  Noel Power <noel.power@suse.com>
42    * BUG 14332: s3/utils: Fix double free error with smbtree. 
43
44 o  Martin Schwenke <martin@meltin.net>
45    * BUG 14294: CTDB recovery corner cases can cause record resurrection and
46      node banning.
47    * BUG 14295: Starting ctdb node that was powered off hard before results in
48      recovery loop.
49    * BUG 14324: CTDB recovery daemon can crash due to dereference of NULL
50      pointer.
51
52
53 #######################################
54 Reporting bugs & Development Discussion
55 #######################################
56
57 Please discuss this release on the samba-technical mailing list or by
58 joining the #samba-technical IRC channel on irc.freenode.net.
59
60 If you do report problems then please try to send high quality
61 feedback. If you don't provide vital information to help us track down
62 the problem then you will probably be ignored.  All bug reports should
63 be filed under the Samba 4.1 and newer product in the project's Bugzilla
64 database (https://bugzilla.samba.org/).
65
66
67 ======================================================================
68 == Our Code, Our Bugs, Our Responsibility.
69 == The Samba Team
70 ======================================================================
71
72
73 Release notes for older releases follow:
74 ----------------------------------------
75
76                    ==============================
77                    Release Notes for Samba 4.12.0
78                            March 03, 2020
79                    ==============================
80
81
82 This is the first stable release of the Samba 4.12 release series.
83 Please read the release notes carefully before upgrading.
84
85
86 NEW FEATURES/CHANGES
87 ====================
88
89 Python 3.5 Required
90 -------------------
91
92 Samba's minimum runtime requirement for python was raised to Python
93 3.4 with samba 4.11.  Samba 4.12 raises this minimum version to Python
94 3.5 both to access new features and because this is the oldest version
95 we test with in our CI infrastructure.
96
97 (Build time support for the file server with Python 2.6 has not
98 changed)
99
100 Removing in-tree cryptography: GnuTLS 3.4.7 required
101 ----------------------------------------------------
102
103 Samba is making efforts to remove in-tree cryptographic functionality,
104 and to instead rely on externally maintained libraries.  To this end,
105 Samba has chosen GnuTLS as our standard cryptographic provider.
106
107 Samba now requires GnuTLS 3.4.7 to be installed (including development
108 headers at build time) for all configurations, not just the Samba AD
109 DC.
110
111 Thanks to this work Samba no longer ships an in-tree DES
112 implementation and on GnuTLS 3.6.5 or later Samba will include no
113 in-tree cryptography other than the MD4 hash and that
114 implemented in our copy of Heimdal.
115
116 Using GnuTLS for SMB3 encryption you will notice huge performance and copy
117 speed improvements. Tests with the CIFS Kernel client from Linux Kernel 5.3
118 show a 3x speed improvement for writing and a 2.5x speed improvement for reads!
119
120 NOTE WELL: The use of GnuTLS means that Samba will honour the
121 system-wide 'FIPS mode' (a reference to the US FIPS-140 cryptographic
122 standard) and so will not operate in many still common situations if
123 this system-wide parameter is in effect, as many of our protocols rely
124 on outdated cryptography.
125
126 A future Samba version will mitigate this to some extent where good
127 cryptography effectively wraps bad cryptography, but for now that above
128 applies.
129
130 zlib library is now required to build Samba
131 -------------------------------------------
132
133 Samba no longer includes a local copy of zlib in our source tarball.
134 By removing this we do not need to ship (even where we did not
135 build) the old, broken zip encryption code found there.
136
137 New Spotlight backend for Elasticsearch
138 ---------------------------------------
139
140 Support for the macOS specific Spotlight search protocol has been enhanced
141 significantly. Starting with 4.12 Samba supports using Elasticsearch as search
142 backend. Various new parameters have been added to configure this:
143
144   spotlight backend = noindex | elasticsearch | tracker
145   elasticsearch:address = ADDRESS
146   elasticsearch:port = PORT
147   elasticsearch:use tls = BOOLEAN
148   elasticsearch:index = INDEXNAME
149   elasticsearch:mappings = PATH
150   elasticsearch:max results = NUMBER
151
152 Samba also ships a Spotlight client command "mdfind" which can be used to search
153 any SMB server that runs the Spotlight RPC service. See the manpage of mdfind
154 for details.
155
156 Note that when upgrading existing installations that are using the previous
157 default Spotlight backend Gnome Tracker must explicitly set "spotlight backend =
158 tracker" as the new default is "noindex".
159
160 'net ads kerberos pac save' and 'net eventlog export'
161 -----------------------------------------------------
162
163 The 'net ads kerberos pac save' and 'net eventlog export' tools will
164 no longer silently overwrite an existing file during data export.  If
165 the filename given exits, an error will be shown.
166
167 Fuzzing
168 -------
169
170 A large number of fuzz targets have been added to Samba, and Samba has
171 been registered in Google's oss-fuzz cloud fuzzing service.  In
172 particular, we now have good fuzzing coverage of our generated NDR
173 parsing code.
174
175 A large number of issues have been found and fixed thanks to this
176 effort.
177
178 'samba-tool' improvements add contacts as member to groups
179 ----------------------------------------------------------
180
181 Previously 'samba-tool group addmemers' can just add users, groups and
182 computers as members to groups. But also contacts can be members of
183 groups. Samba 4.12 adds the functionality to add contacts to
184 groups. Since contacts have no sAMAccountName, it's possible that
185 there are more than one contact with the same name in different
186 organizational units. Therefore it's necessary to have an option to
187 handle group members by their DN.
188
189 To get the DN of an object there is now the "--full-dn" option available
190 for all necessary commands.
191
192 The MS Windows UI allows to search for specific types of group members
193 when searching for new members for a group. This feature is included
194 here with the new samba-tool group addmembers "--object-type=OBJECTYPE"
195 option. The different types are selected accordingly to the Windows
196 UI. The default samba-toole behaviour shouldn't be changed.
197
198 Allow filtering by OU or subtree in samba-tool
199 ----------------------------------------------
200
201 A new "--base-dn" and "--member-base-dn" option is added to relevant
202 samba-tool user, group and ou management commands to allow operation
203 on just one part of the AD tree, such as a single OU.
204
205 VFS
206 ===
207
208 SMB_VFS_NTIMES
209 --------------
210
211 Samba now uses a sentinel value based on utimensat(2) UTIME_OMIT to denote
212 to-be-ignored timestamp variables passed to the SMB_VFS_NTIMES() VFS function.
213
214 VFS modules can check whether any of the time values inside a struct
215 smb_file_time is to be ignored by calling is_omit_timespec() on the value.
216
217 'io_uring' vfs module
218 ---------------------
219
220 The module makes use of the new io_uring infrastructure
221 (intruduced in Linux 5.1), see https://lwn.net/Articles/776703/
222
223 Currently this implements SMB_VFS_{PREAD,PWRITE,FSYNC}_SEND/RECV
224 and avoids the overhead of the userspace threadpool in the default
225 vfs backend. See also vfs_io_uring(8).
226
227 In order to build the module you need the liburing userspace library
228 and its developement headers installed, see
229 https://git.kernel.dk/cgit/liburing/
230
231 At runtime you'll need a Linux kernel with version 5.1 or higher.
232 Note that 5.4.14 and 5.4.15 have a regression that breaks the Samba
233 module! The regression was fixed in Linux 5.4.16 again.
234
235 MS-DFS changes in the VFS
236 -------------------------
237
238 This release changes set getting and setting of MS-DFS redirects
239 on the filesystem to go through two new VFS functions:
240
241 SMB_VFS_CREATE_DFS_PATHAT()
242 SMB_VFS_READ_DFS_PATHAT()
243
244 instead of smbd explicitly storing MS-DFS redirects inside
245 symbolic links on the filesystem. The underlying default
246 implementations of this has not changed, the redirects are
247 still stored inside symbolic links on the filesystem, but
248 moving the creation and reading of these links into the VFS
249 as first-class functions now allows alternate methods of
250 storing them (maybe in extended attributes) for OEMs who
251 don't want to mis-use filesystem symbolic links in this
252 way.
253
254
255 CTDB changes
256 ============
257
258 * The ctdb_mutex_fcntl_helper periodically re-checks the lock file
259
260   The re-check period is specified using a 2nd argument to this
261   helper.  The default re-check period is 5s.
262
263   If the file no longer exists or the inode number changes then the
264   helper exits.  This triggers an election.
265
266
267 REMOVED FEATURES
268 ================
269
270 The smb.conf parameter "write cache size" has been removed.
271
272 Since the in-memory write caching code was written, our write path has
273 changed significantly. In particular we have gained very flexible
274 support for async I/O, with the new linux io_uring interface in
275 development.  The old write cache concept which cached data in main
276 memory followed by a blocking pwrite no longer gives any improvement
277 on modern systems, and may make performance worse on memory-contrained
278 systems, so this functionality should not be enabled in core smbd
279 code.
280
281 In addition, it complicated the write code, which is a performance
282 critical code path.
283
284 If required for specialist purposes, it can be recreated as a VFS
285 module.
286
287 Retiring DES encryption types in Kerberos.
288 ------------------------------------------
289 With this release, support for DES encryption types has been removed from
290 Samba, and setting DES_ONLY flag for an account will cause Kerberos
291 authentication to fail for that account (see RFC-6649).
292
293 Samba-DC: DES keys no longer saved in DB.
294 -----------------------------------------
295 When a new password is set for an account, Samba DC will store random keys
296 in DB instead of DES keys derived from the password.  If the account is being
297 migrated to Windbows or to an older version of Samba in order to use DES keys,
298 the password must be reset to make it work.
299
300 Heimdal-DC: removal of weak-crypto.
301 -----------------------------------
302 Following removal of DES encryption types from Samba, the embedded Heimdal
303 build has been updated to not compile weak crypto code (HEIM_WEAK_CRYPTO).
304
305 vfs_netatalk: The netatalk VFS module has been removed.
306 -------------------------------------------------------
307
308 The netatalk VFS module has been removed. It was unmaintained and is not needed
309 any more.
310
311 BIND9_FLATFILE deprecated
312 -------------------------
313
314 The BIND9_FLATFILE DNS backend is deprecated in this release and will
315 be removed in the future.  This was only practically useful on a single
316 domain controller or under expert care and supervision.
317
318 This release removes the 'rndc command' smb.conf parameter, which
319 supported this configuration by writing out a list of DCs permitted to
320 make changes to the DNS Zone and nudging the 'named' server if a new
321 DC was added to the domain.  Administrators using BIND9_FLATFILE will
322 need to maintain this manually from now on.
323
324
325 smb.conf changes
326 ================
327
328   Parameter Name                     Description                Default
329   --------------                     -----------                -------
330
331   elasticsearch:address              New                        localhost
332   elasticsearch:port                 New                        9200
333   elasticsearch:use tls              New                        No
334   elasticsearch:index                New                        _all
335   elasticsearch:mappings             New                        DATADIR/elasticsearch_mappings.json
336   elasticsearch:max results          New                        100
337   nfs4:acedup                        Changed default            merge
338   rndc command                       Removed
339   write cache size                   Removed
340   spotlight backend                  New                        noindex
341
342
343 CHANGES SINCE 4.12.0rc4
344 =======================
345
346 o  Andrew Bartlett <abartlet@samba.org>
347    * BUG 14258: dsdb: Correctly handle memory in objectclass_attrs.
348
349
350 CHANGES SINCE 4.12.0rc3
351 =======================
352
353 o  Jeremy Allison <jra@samba.org>
354    * BUG 14269: s3: DFS: Don't allow link deletion on a read-only share.
355
356 o  Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
357    * BUG 14284: pidl/wscript: configure should insist on Parse::Yapp::Driver.
358
359 o  Andrew Bartlett <abartlet@samba.org>
360    * BUG 14270: ldb: Fix search with scope ONE and small result sets. 
361    * BUG 14284: build: Do not check if system perl modules should be bundled.
362
363 o  Volker Lendecke <vl@samba.org>
364    * BUG 14285: smbd fails to handle EINTR from open(2) properly.
365
366 o  Stefan Metzmacher <metze@samba.org>
367    * BUG 14270: ldb: version 2.1.1.
368
369
370 CHANGES SINCE 4.12.0rc2
371 =======================
372
373 o  Jeremy Allison <jra@samba.org>
374    * BUG 14282: Set getting and setting of MS-DFS redirects on the filesystem
375      to go through two new VFS functions SMB_VFS_CREATE_DFS_PATHAT() and
376      SMB_VFS_READ_DFS_PATHAT().
377
378 o  Andrew Bartlett <abartlet@samba.org>
379    * BUG 14255: bootstrap: Remove un-used dependency python3-crypto.
380
381 o  Volker Lendecke <vl@samba.org>
382    * BUG 14247: Fix CID 1458418 and 1458420.
383    * BUG 14281: lib: Fix a shutdown crash with "clustering = yes".
384
385 o  Stefan Metzmacher <metze@samba.org>
386    * BUG 14247: Winbind member (source3) fails local SAM auth with empty domain
387      name.
388    * BUG 14265: winbindd: Handle missing idmap in getgrgid().
389    * BUG 14271: Don't use forward declaration for GnuTLS typedefs.
390    * BUG 14280: Add io_uring vfs module.
391
392 o  Andreas Schneider <asn@samba.org>
393    * BUG 14250: libcli:smb: Improve check for gnutls_aead_cipher_(en|de)cryptv2.
394
395
396 CHANGES SINCE 4.12.0rc1
397 =======================
398
399 o  Jeremy Allison <jra@samba.org>
400    * BUG 14239: s3: lib: nmblib. Clean up and harden nmb packet processing.
401
402 o  Andreas Schneider <asn@samba.org>
403    * BUG 14253: lib:util: Log mkdir error on correct debug levels.
404
405
406 KNOWN ISSUES
407 ============
408
409 https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.12#Release_blocking_bugs
410
411
412 #######################################
413 Reporting bugs & Development Discussion
414 #######################################
415
416 Please discuss this release on the samba-technical mailing list or by
417 joining the #samba-technical IRC channel on irc.freenode.net.
418
419 If you do report problems then please try to send high quality
420 feedback. If you don't provide vital information to help us track down
421 the problem then you will probably be ignored.  All bug reports should
422 be filed under the Samba 4.1 and newer product in the project's Bugzilla
423 database (https://bugzilla.samba.org/).
424
425
426 ======================================================================
427 == Our Code, Our Bugs, Our Responsibility.
428 == The Samba Team
429 ======================================================================
430