/* Modified to have 'count' specified, and to allocate the array */ static enum ndr_err_code ndr_pull_AuthenticationInformationArray_with_count(struct ndr_pull *ndr, int ndr_flags, int count, struct AuthenticationInformationArray *r) { uint32_t cntr_array_0; TALLOC_CTX *_mem_save_array_0; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); NDR_PULL_ALLOC_N(ndr, r->array, count); _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); for (cntr_array_0 = 0; cntr_array_0 < count; cntr_array_0++) { NDR_CHECK(ndr_pull_AuthenticationInformation(ndr, NDR_SCALARS, &r->array[cntr_array_0])); } NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0); } if (ndr_flags & NDR_BUFFERS) { for (cntr_array_0 = 0; cntr_array_0 < count; cntr_array_0++) { NDR_CHECK(ndr_pull_AuthenticationInformation(ndr, NDR_BUFFERS, &r->array[cntr_array_0])); } } return NDR_ERR_SUCCESS; }
_PUBLIC_ enum ndr_err_code ndr_pull_AuthenticationInformationArray(struct ndr_pull *ndr, int ndr_flags, struct AuthenticationInformationArray *r) { if (ndr_flags & NDR_SCALARS) { r->count = 0; NDR_PULL_ALLOC_N(ndr, r->array, r->count); /* entry is at least 16 bytes large */ while (ndr->offset + 16 <= ndr->data_size) { r->array = talloc_realloc(ndr, r->array, struct AuthenticationInformation, r->count + 1); NDR_ERR_HAVE_NO_MEMORY(r->array); NDR_CHECK(ndr_pull_AuthenticationInformation(ndr, NDR_SCALARS, &r->array[r->count])); r->count++; } NDR_CHECK(ndr_pull_align(ndr, 4)); }