Changeset 228 for branches/samba-3.2.x/source/librpc/ndr
- Timestamp:
- May 26, 2009, 9:44:50 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.2.x/source/librpc/ndr/ndr_sec_helper.c
r133 r228 22 22 23 23 #include "includes.h" 24 #include "librpc/gen_ndr/security.h" 24 25 25 26 /* … … 50 51 { 51 52 return ndr_size_dom_sid28(sid, flags); 53 } 54 55 enum ndr_err_code ndr_pull_security_ace(struct ndr_pull *ndr, int ndr_flags, struct security_ace *r) 56 { 57 if (ndr_flags & NDR_SCALARS) { 58 uint32_t start_ofs = ndr->offset; 59 uint32_t size = 0; 60 uint32_t pad = 0; 61 NDR_CHECK(ndr_pull_align(ndr, 4)); 62 NDR_CHECK(ndr_pull_security_ace_type(ndr, NDR_SCALARS, &r->type)); 63 NDR_CHECK(ndr_pull_security_ace_flags(ndr, NDR_SCALARS, &r->flags)); 64 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size)); 65 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->access_mask)); 66 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->object, r->type)); 67 NDR_CHECK(ndr_pull_security_ace_object_ctr(ndr, NDR_SCALARS, &r->object)); 68 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->trustee)); 69 size = ndr->offset - start_ofs; 70 if (r->size < size) { 71 return ndr_pull_error(ndr, NDR_ERR_BUFSIZE, 72 "ndr_pull_security_ace: r->size %u < size %u", 73 (unsigned)r->size, size); 74 } 75 pad = r->size - size; 76 NDR_PULL_NEED_BYTES(ndr, pad); 77 ndr->offset += pad; 78 } 79 if (ndr_flags & NDR_BUFFERS) { 80 NDR_CHECK(ndr_pull_security_ace_object_ctr(ndr, NDR_BUFFERS, &r->object)); 81 } 82 return NDR_ERR_SUCCESS; 52 83 } 53 84
Note:
See TracChangeset
for help on using the changeset viewer.