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)
committerKarolin Seeger <kseeger@samba.org>
Thu, 14 May 2020 07:25:46 +0000 (07:25 +0000)
commit136a83c5a9faf9a5d32c4b2f43559aef984fe09d
tree1d45294bbfebf31e5ac17921c37b4b9210dd0f75
parent6b650659ef6dc037e446879e19773159d04e9cbe
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

(cherry picked from commit bf04ca5658dcf7d7cdf5f718eec0e5e21f9a0d64)
source3/locking/share_mode_lock.c