*/
static enum ndr_err_code get_share_mode_blob_header(
- DATA_BLOB *blob, uint64_t *pseq, uint16_t *pflags)
+ const uint8_t *buf, size_t buflen, uint64_t *pseq, uint16_t *pflags)
{
- struct ndr_pull ndr = {.data = blob->data, .data_size = blob->length};
+ struct ndr_pull ndr = {
+ .data = discard_const_p(uint8_t, buf),
+ .data_size = buflen,
+ };
NDR_CHECK(ndr_pull_hyper(&ndr, NDR_SCALARS, pseq));
NDR_CHECK(ndr_pull_uint16(&ndr, NDR_SCALARS, pflags));
return NDR_ERR_SUCCESS;
TDB_DATA value, bool *modified_dependent, void *private_data)
{
struct fsp_update_share_mode_flags_state *state = private_data;
- DATA_BLOB blob = { .data = value.dptr, .length = value.dsize };
uint64_t seq;
state->ndr_err = get_share_mode_blob_header(
- &blob, &seq, &state->share_mode_flags);
+ value.dptr, value.dsize, &seq, &state->share_mode_flags);
}
static NTSTATUS fsp_update_share_mode_flags(struct files_struct *fsp)
return NULL;
}
/* sequence number key is at start of blob. */
- ndr_err = get_share_mode_blob_header(blob, &sequence_number, &flags);
+ ndr_err = get_share_mode_blob_header(
+ blob->data, blob->length, &sequence_number, &flags);
if (ndr_err != NDR_ERR_SUCCESS) {
/* Bad blob. Remove entry. */
DBG_DEBUG("bad blob %u key %s\n",