summaryrefslogtreecommitdiff
path: root/source4/librpc/ndr/ndr_misc.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2003-11-20 10:29:54 +0000
committerAndrew Tridgell <tridge@samba.org>2003-11-20 10:29:54 +0000
commitd4dfcda78eeca4206965667a45f4f00f4e10457a (patch)
tree952f96c7eef52ad28609d65eef4cb37b1002e191 /source4/librpc/ndr/ndr_misc.c
parent5d77cda1dccf79356aa8ab3ef3516aa69325e2be (diff)
downloadsamba-d4dfcda78eeca4206965667a45f4f00f4e10457a.tar.gz
samba-d4dfcda78eeca4206965667a45f4f00f4e10457a.tar.bz2
samba-d4dfcda78eeca4206965667a45f4f00f4e10457a.zip
* fixed level2 of QueryUserInfo
* added per-field testing of SetUserInfo * fixed strlen_m() (This used to be commit 26238b0f8a5752bb0f611c4aa492b964e419209a)
Diffstat (limited to 'source4/librpc/ndr/ndr_misc.c')
-rw-r--r--source4/librpc/ndr/ndr_misc.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/source4/librpc/ndr/ndr_misc.c b/source4/librpc/ndr/ndr_misc.c
index 31f501e614..575f0d3a4d 100644
--- a/source4/librpc/ndr/ndr_misc.c
+++ b/source4/librpc/ndr/ndr_misc.c
@@ -90,14 +90,22 @@ NTSTATUS ndr_pull_dom_sid(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *r
NDR_CHECK(ndr_pull_align(ndr, 4));
NDR_CHECK(ndr_pull_uint8(ndr, &r->sid_rev_num));
NDR_CHECK(ndr_pull_uint8(ndr, &r->num_auths));
+ {
NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->id_auth, 6));
+ }
NDR_ALLOC_N_SIZE(ndr, r->sub_auths, r->num_auths, sizeof(r->sub_auths[0]));
+ {
NDR_CHECK(ndr_pull_array_uint32(ndr, NDR_SCALARS, r->sub_auths, r->num_auths));
+ }
ndr_pull_struct_end(ndr);
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
+ {
NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_BUFFERS, r->id_auth, 6));
+ }
+ {
NDR_CHECK(ndr_pull_array_uint32(ndr, NDR_BUFFERS, r->sub_auths, r->num_auths));
+ }
done:
return NT_STATUS_OK;
}
@@ -127,11 +135,15 @@ NTSTATUS ndr_pull_security_acl(struct ndr_pull *ndr, int ndr_flags, struct secur
NDR_CHECK(ndr_pull_uint16(ndr, &r->revision));
NDR_CHECK(ndr_pull_uint32(ndr, &r->num_aces));
NDR_ALLOC_N_SIZE(ndr, r->aces, r->num_aces, sizeof(r->aces[0]));
+ {
NDR_CHECK(ndr_pull_array(ndr, NDR_SCALARS, (void **)r->aces, sizeof(r->aces[0]), r->num_aces, (ndr_pull_flags_fn_t)ndr_pull_security_ace));
+ }
ndr_pull_struct_end(ndr);
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
+ {
NDR_CHECK(ndr_pull_array(ndr, NDR_BUFFERS, (void **)r->aces, sizeof(r->aces[0]), r->num_aces, (ndr_pull_flags_fn_t)ndr_pull_security_ace));
+ }
done:
return NT_STATUS_OK;
}