Files
ports/net/samba412/files
Dimitry Andric ddfe6ae2fc net/samba411 net/samba412 net/samba413: Fix zero-sized VLAs
With recent versions of clang, samba could dump core shortly after
startup, terminating with either SIGILL or SIGSEGV.

Investigation showed that samba is using C99 variable length arrays
(VLAs), and in some cases the length of these arrays would become zero.
Since this is undefined behavior, various interesting things would
happen, often ending in segfaults.

Fix this by avoiding to use zero as the length for these VLA
declarations.

A similar patch was also sent upstream, and was accepted and included in
subsequent samba releases.

See also: https://bugzilla.samba.org/show_bug.cgi?id=14605

Reported by:	Dries Michiels <driesm.michiels@gmail.com>
PR:		252157
MFH:		2021Q1
2021-01-30 13:22:39 +00:00
..

              !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
              !!! Please read before runing any tools !!!
              !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Documentation
=============

    o https://wiki.samba.org/index.php/Samba4/HOWTO

    o https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO

    o https://wiki.samba.org/index.php/Samba4/samba-tool/domain/classicupgrade/HOWTO

FreeBSD specific information
============================

* Your configuration is in: %%SAMBA4_CONFDIR%%/%%SAMBA4_CONFIG%%

* All the logs are under: %%SAMBA4_LOGDIR%%

* All the relevant databases are under: %%SAMBA4_LOCKDIR%%

* Provisioning script is: %%PREFIX%%/bin/samba-tool

Samba4 provisioning requires file system(s) with the ACLs support. On
UFS2 you need to enable POSIX ACLs by adding 'acls' option to the mount
flags, on ZFS you need to use NFSv4 ACLs and `zfsacl` VFS module to get
provisioning work.

There is a hack in the code, that makes provisioning work on UFS2 and in
the jails on the price of using USER extattr(2) namespace, which is less
secure than SYSTEM namespace, as can be edited not only by root user, but
also by the owner of the file.

For the provisioning on ZFS you need to use additional parameters to the
samba-tool, that would explicitly add `zfsacl` to the default `vfs objects`:

    # samba-tool domain provision --interactive \
            --option="vfs objects"="dfs_samba4 zfsacl"

To run this port you need to perform the following steps:
---------------------------------------------------------

0. If you had Samba3 port installed before, please, *take backups* of
all the relevant files. That includes 'smb.conf' file and all the
content of the '/var/db/samba/' directory.

1a. Create new '%%SAMBA4_CONFDIR%%/%%SAMBA4_CONFIG%%' file by running:

    # samba-tool domain provision

1b. Or upgrade from the Samba3 'smb.conf' file by running:

    # samba-tool domain classicupgrade

%%NSUPDATE%%1c. You will need to specify location of the 'nsupdate' command in the
%%NSUPDATE%%'%%SAMBA4_CONFIG%%' file:
%%NSUPDATE%%
%%NSUPDATE%%      nsupdate command = %%PREFIX%%/bin/samba-nsupdate -g
%%NSUPDATE%%
2. Put string 'samba_server_enable="YES"' into your /etc/rc.conf.

3. Make sure that your server doesn't run Samba3, OpenLDAP and named.
Stop them, if necessary.

4. Run '%%PREFIX%%/etc/rc.d/samba_server start' or reboot.

Please, check archives of samba@lists.samba.org and ask there for help,
if necessary:

    https://lists.samba.org/archive/samba/

In case you found a bug which is clearly not related to the port build
process itself, plese file a bug report at:

    https://bugzilla.samba.org/

And add me to CC list.

You may find those tools helpful:
---------------------------------

Microsoft Remote Server Administration Tools (RSAT) for:

* Vista: http://www.microsoft.com/en-us/download/details.aspx?id=21090
* Windows 7: http://www.microsoft.com/en-us/download/details.aspx?id=7887


FreeBSD Samba4 port maintainer: Timur I. Bakeyev <timur@FreeBSD.org>