enum ndr_err_code ndr_pull_file_id(struct ndr_pull *ndr, int ndr_flags, struct file_id *r) { if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->devid)); NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->inode)); NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->extid)); } if (ndr_flags & NDR_BUFFERS) { } return NDR_ERR_SUCCESS; }
static enum ndr_err_code ndr_pull_xattr_DosInfo1(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosInfo1 *r) { if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attrib)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ea_size)); NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->size)); NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->alloc_size)); NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->create_time)); NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->change_time)); } if (ndr_flags & NDR_BUFFERS) { } return NDR_ERR_SUCCESS; }
/* parse a hyper */ _PUBLIC_ enum ndr_err_code ndr_pull_hyper(struct ndr_pull *ndr, int ndr_flags, uint64_t *v) { NDR_PULL_ALIGN(ndr, 8); if (NDR_BE(ndr)) { return ndr_pull_udlongr(ndr, ndr_flags, v); } return ndr_pull_udlong(ndr, ndr_flags, v); }
static enum ndr_err_code ndr_pull_xattr_DosStream(struct ndr_pull *ndr, int ndr_flags, struct xattr_DosStream *r) { if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags)); NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->size)); NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->alloc_size)); { uint32_t _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM); NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name)); ndr->flags = _flags_save_string; } } if (ndr_flags & NDR_BUFFERS) { } return NDR_ERR_SUCCESS; }
/* pull a NTTIME */ _PUBLIC_ enum ndr_err_code ndr_pull_NTTIME(struct ndr_pull *ndr, int ndr_flags, NTTIME *t) { NDR_CHECK(ndr_pull_udlong(ndr, ndr_flags, t)); return NDR_ERR_SUCCESS; }
/* parse a dlong */ _PUBLIC_ enum ndr_err_code ndr_pull_dlong(struct ndr_pull *ndr, int ndr_flags, int64_t *v) { return ndr_pull_udlong(ndr, ndr_flags, (uint64_t *)v); }
_PUBLIC_ enum ndr_err_code ndr_pull_security_token(struct ndr_pull *ndr, int ndr_flags, struct security_token *r) { uint32_t _ptr_user_sid; TALLOC_CTX *_mem_save_user_sid_0; uint32_t _ptr_group_sid; TALLOC_CTX *_mem_save_group_sid_0; uint32_t _ptr_sids; uint32_t cntr_sids_0; TALLOC_CTX *_mem_save_sids_0; TALLOC_CTX *_mem_save_sids_1; uint32_t _ptr_default_dacl; TALLOC_CTX *_mem_save_default_dacl_0; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 5)); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_sid)); if (_ptr_user_sid) { NDR_PULL_ALLOC(ndr, r->user_sid); } else { r->user_sid = NULL; } NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_sid)); if (_ptr_group_sid) { NDR_PULL_ALLOC(ndr, r->group_sid); } else { r->group_sid = NULL; } NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sids)); NDR_CHECK(ndr_pull_array_size(ndr, &r->sids)); NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids)); _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); for (cntr_sids_0 = 0; cntr_sids_0 < r->num_sids; cntr_sids_0++) { NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids)); if (_ptr_sids) { NDR_PULL_ALLOC(ndr, r->sids[cntr_sids_0]); } else { r->sids[cntr_sids_0] = NULL; } } NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0); NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->privilege_mask)); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_dacl)); if (_ptr_default_dacl) { NDR_PULL_ALLOC(ndr, r->default_dacl); } else { r->default_dacl = NULL; } if (r->sids) { NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->num_sids)); } NDR_CHECK(ndr_pull_trailer_align(ndr, 5)); } if (ndr_flags & NDR_BUFFERS) { if (r->user_sid) { _mem_save_user_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->user_sid, 0); NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->user_sid)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_sid_0, 0); } if (r->group_sid) { _mem_save_group_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->group_sid, 0); NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->group_sid)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_sid_0, 0); } _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); for (cntr_sids_0 = 0; cntr_sids_0 < r->num_sids; cntr_sids_0++) { if (r->sids[cntr_sids_0]) { _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->sids[cntr_sids_0], 0); NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->sids[cntr_sids_0])); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0); } } NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0); if (r->default_dacl) { _mem_save_default_dacl_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->default_dacl, 0); NDR_CHECK(ndr_pull_security_acl(ndr, NDR_SCALARS|NDR_BUFFERS, r->default_dacl)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_dacl_0, 0); } } return NDR_ERR_SUCCESS; }