diff --git a/source3/include/vfs.h b/source3/include/vfs.h index 3c80a5fdd33..47147821ffd 100644 --- a/source3/include/vfs.h +++ b/source3/include/vfs.h @@ -396,7 +396,7 @@ typedef struct files_struct { * Cache of share_mode_data->flags */ int share_mode_flags_seqnum; - uint8_t share_mode_flags; + uint16_t share_mode_flags; /* * Read-only cached brlock record, thrown away when the diff --git a/source3/librpc/idl/open_files.idl b/source3/librpc/idl/open_files.idl index 07f0023909c..e1c8a01afd3 100644 --- a/source3/librpc/idl/open_files.idl +++ b/source3/librpc/idl/open_files.idl @@ -40,7 +40,7 @@ interface open_files security_unix_token *delete_token; } delete_token; - typedef [public,bitmap8bit] bitmap { + typedef [public,bitmap16bit] bitmap { SHARE_MODE_HAS_READ_LEASE = 0x01 } share_mode_flags; diff --git a/source3/locking/share_mode_lock.c b/source3/locking/share_mode_lock.c index 0cf8f5a39fe..3c91a25948d 100644 --- a/source3/locking/share_mode_lock.c +++ b/source3/locking/share_mode_lock.c @@ -210,17 +210,17 @@ static void share_mode_memcache_store(struct share_mode_data *d) */ static enum ndr_err_code get_share_mode_blob_header( - DATA_BLOB *blob, uint64_t *pseq, uint8_t *pflags) + DATA_BLOB *blob, uint64_t *pseq, uint16_t *pflags) { struct ndr_pull ndr = {.data = blob->data, .data_size = blob->length}; NDR_CHECK(ndr_pull_hyper(&ndr, NDR_SCALARS, pseq)); - NDR_CHECK(ndr_pull_uint8(&ndr, NDR_SCALARS, pflags)); + NDR_CHECK(ndr_pull_uint16(&ndr, NDR_SCALARS, pflags)); return NDR_ERR_SUCCESS; } struct fsp_update_share_mode_flags_state { enum ndr_err_code ndr_err; - uint8_t share_mode_flags; + uint16_t share_mode_flags; }; static void fsp_update_share_mode_flags_fn( @@ -290,7 +290,7 @@ static struct share_mode_data *share_mode_memcache_fetch(TALLOC_CTX *mem_ctx, enum ndr_err_code ndr_err; struct share_mode_data *d; uint64_t sequence_number; - uint8_t flags; + uint16_t flags; void *ptr; struct file_id id; DATA_BLOB key;