summaryrefslogtreecommitdiff
path: root/librpc/gen_ndr/ndr_security.c
diff options
context:
space:
mode:
Diffstat (limited to 'librpc/gen_ndr/ndr_security.c')
-rw-r--r--librpc/gen_ndr/ndr_security.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/librpc/gen_ndr/ndr_security.c b/librpc/gen_ndr/ndr_security.c
index 3ae6ec31068..824f24b70fb 100644
--- a/librpc/gen_ndr/ndr_security.c
+++ b/librpc/gen_ndr/ndr_security.c
@@ -491,6 +491,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_security_acl(struct ndr_push *ndr, int ndr_f
_PUBLIC_ enum ndr_err_code ndr_pull_security_acl(struct ndr_pull *ndr, int ndr_flags, struct security_acl *r)
{
+ uint32_t size_aces_0 = 0;
uint32_t cntr_aces_0;
TALLOC_CTX *_mem_save_aces_0;
if (ndr_flags & NDR_SCALARS) {
@@ -501,18 +502,20 @@ _PUBLIC_ enum ndr_err_code ndr_pull_security_acl(struct ndr_pull *ndr, int ndr_f
if (r->num_aces > 1000) {
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
- NDR_PULL_ALLOC_N(ndr, r->aces, r->num_aces);
+ size_aces_0 = r->num_aces;
+ NDR_PULL_ALLOC_N(ndr, r->aces, size_aces_0);
_mem_save_aces_0 = NDR_PULL_GET_MEM_CTX(ndr);
NDR_PULL_SET_MEM_CTX(ndr, r->aces, 0);
- for (cntr_aces_0 = 0; cntr_aces_0 < r->num_aces; cntr_aces_0++) {
+ for (cntr_aces_0 = 0; cntr_aces_0 < size_aces_0; cntr_aces_0++) {
NDR_CHECK(ndr_pull_security_ace(ndr, NDR_SCALARS, &r->aces[cntr_aces_0]));
}
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aces_0, 0);
}
if (ndr_flags & NDR_BUFFERS) {
+ size_aces_0 = r->num_aces;
_mem_save_aces_0 = NDR_PULL_GET_MEM_CTX(ndr);
NDR_PULL_SET_MEM_CTX(ndr, r->aces, 0);
- for (cntr_aces_0 = 0; cntr_aces_0 < r->num_aces; cntr_aces_0++) {
+ for (cntr_aces_0 = 0; cntr_aces_0 < size_aces_0; cntr_aces_0++) {
NDR_CHECK(ndr_pull_security_ace(ndr, NDR_BUFFERS, &r->aces[cntr_aces_0]));
}
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aces_0, 0);
@@ -878,6 +881,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_security_token(struct ndr_pull *ndr, int ndr
uint32_t _ptr_group_sid;
TALLOC_CTX *_mem_save_group_sid_0;
uint32_t _ptr_sids;
+ uint32_t size_sids_0 = 0;
uint32_t cntr_sids_0;
TALLOC_CTX *_mem_save_sids_0;
TALLOC_CTX *_mem_save_sids_1;
@@ -897,10 +901,11 @@ _PUBLIC_ enum ndr_err_code ndr_pull_security_token(struct ndr_pull *ndr, int ndr
}
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));
+ size_sids_0 = ndr_get_array_size(ndr, &r->sids);
+ NDR_PULL_ALLOC_N(ndr, r->sids, size_sids_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++) {
+ for (cntr_sids_0 = 0; cntr_sids_0 < size_sids_0; cntr_sids_0++) {
NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
if (_ptr_sids) {
NDR_PULL_ALLOC(ndr, r->sids[cntr_sids_0]);
@@ -927,9 +932,10 @@ _PUBLIC_ enum ndr_err_code ndr_pull_security_token(struct ndr_pull *ndr, int ndr
NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->group_sid));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_sid_0, 0);
}
+ size_sids_0 = 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++) {
+ for (cntr_sids_0 = 0; cntr_sids_0 < size_sids_0; 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);