Hi,

On 2016-08-25 07:47, Mathieu Parent wrote:
here smbclient dies with a segfault,

Really segfault? Or errors out and exits?

It dies with a segfault.

In the source package the systemd tmpfiles definition is already
created in the rules file:

  echo "d /run/samba 0755 root root -" >
    $(DESTDIR)/usr/lib/tmpfiles.d/samba.conf

But it's not installed for the smbclient package, but only for
samba-common-bin, which is no dependency for smbclient.

I can move this tmpfile to samba-common. But this only solves the
problem under systemd.

Also, we must ensure that systemd-tmpfiles is run (after samba-common
install, and of course on boot).

I see two solutions:
- Move this snipset to samba-common (with proper Breaks:) and ensure
systemd-tmpfiles is called on postinst, or
- Move lockdir to /var/lib/samba (optionally in a subdir)

Solution 1 will have non-working smbclient on non-systemd systems.
solution 2 will have lock files not purged on reboot.

I just saw, that in samba-common.postinst there is:

TEMPDIR=/var/run/samba/upgrades
[...]
mkdir -p "$TEMPDIR"

The problem is, that /var/run links to /run, which is a tmpfs. So after next boot, the directory is gone.

You say it's a lockdir, than /var/lock aka /run/lock comes to my mind.
That is a directory writable for everybody (with o+t restricted deletion bit).

Btw: Can multiple instances of smbclient safely use the same tdb lock file? Is the client in the end actually using the file?

Regards,
Jan

--
Jan Stattegger-Sievers                Freie Universität Berlin
jan.stattegger-siev...@fu-berlin.de   ZE Datenverarbeitung
                                      Fabeckstraße 32
                                      14195 Berlin

Reply via email to