s3/locking: prime flags in a fresh sharemode data object
authorRalph Boehme <slow@samba.org>
Mon, 11 May 2020 09:35:04 +0000 (11:35 +0200)
committerRalph Boehme <slow@samba.org>
Tue, 12 May 2020 19:52:48 +0000 (19:52 +0000)
commitbf04ca5658dcf7d7cdf5f718eec0e5e21f9a0d64
treeb67fa1bcc2ad8ddffbb481d9f9eafabc33afbc47
parent59f55aa083ce2d87ad6f43dc941f725c79c8ec59
s3/locking: prime flags in a fresh sharemode data object

This is needed to prime the logic in share_mode_flags_restrict() for the
following scenario:

* (First) CREATE on a file with FILE_SHARE_NONE and
  access_mask=FILE_READ_ATTRIBUTES (a stat-open).

* share_mode_flags_restrict() gets called with

    share_mode_flags_restrict(flags=0,
                              access_mask=0x80,
                              share_mode=0,
                              lease_type=UINT32_MAX)

  and returns a value where none of the FILE_SHARE_* flags is set.

As a result share_mode_data.flags doesn't reflect the share-modes in effect.

This doesn't change any current visible behaviour outside of open_mode_check(),
but it avoids calling share_mode_forall_entries() in open_mode_check_fn().

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14375

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Ralph Böhme <slow@samba.org>
Autobuild-Date(master): Tue May 12 19:52:48 UTC 2020 on sn-devel-184
source3/locking/share_mode_lock.c