~ubuntu-branches/ubuntu/lucid/samba/lucid-security

« back to all changes in this revision

Viewing changes to librpc/gen_ndr/ndr_spoolss.c

  • Committer: Package Import Robot
  • Author(s): Tyler Hicks
  • Date: 2012-04-12 05:28:44 UTC
  • Revision ID: package-import@ubuntu.com-20120412052844-b8hw24wpk25nkzrf
Tags: 2:3.4.7~dfsg-1ubuntu3.9
* SECURITY UPDATE: Unauthenticated remote code execution via
  RPC calls (LP: #978458)
  - debian/patches/CVE-2012-1182-1.patch: Fix PIDL compiler to generate code
    that uses the same value for array allocation and array length checks.
    Based on upstream patch.
  - debian/patches/CVE-2012-1182-2.patch: Regenerate PIDL generated files with
    the patched PIDL compiler
  - CVE-2012-1182

Show diffs side-by-side

added added

removed removed

Lines of Context:
625
625
 
626
626
_PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
627
627
{
 
628
        uint32_t size_devicename_0 = 0;
 
629
        uint32_t size_formname_0 = 0;
628
630
        if (ndr_flags & NDR_SCALARS) {
629
631
                NDR_CHECK(ndr_pull_align(ndr, 4));
630
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
 
632
                size_devicename_0 = 32;
 
633
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, size_devicename_0, sizeof(uint16_t), CH_UTF16));
631
634
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
632
635
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
633
636
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
646
649
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
647
650
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
648
651
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
649
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
 
652
                size_formname_0 = 32;
 
653
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, size_formname_0, sizeof(uint16_t), CH_UTF16));
650
654
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
651
655
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
652
656
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
4530
4534
static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
4531
4535
{
4532
4536
        uint32_t _ptr_printer_name;
 
4537
        uint32_t size_printer_name_1 = 0;
 
4538
        uint32_t length_printer_name_1 = 0;
4533
4539
        TALLOC_CTX *_mem_save_printer_name_0;
4534
4540
        uint32_t _ptr_server_name;
 
4541
        uint32_t size_server_name_1 = 0;
 
4542
        uint32_t length_server_name_1 = 0;
4535
4543
        TALLOC_CTX *_mem_save_server_name_0;
4536
4544
        uint32_t _ptr_user_name;
 
4545
        uint32_t size_user_name_1 = 0;
 
4546
        uint32_t length_user_name_1 = 0;
4537
4547
        TALLOC_CTX *_mem_save_user_name_0;
4538
4548
        uint32_t _ptr_document_name;
 
4549
        uint32_t size_document_name_1 = 0;
 
4550
        uint32_t length_document_name_1 = 0;
4539
4551
        TALLOC_CTX *_mem_save_document_name_0;
4540
4552
        uint32_t _ptr_data_type;
 
4553
        uint32_t size_data_type_1 = 0;
 
4554
        uint32_t length_data_type_1 = 0;
4541
4555
        TALLOC_CTX *_mem_save_data_type_0;
4542
4556
        uint32_t _ptr_text_status;
 
4557
        uint32_t size_text_status_1 = 0;
 
4558
        uint32_t length_text_status_1 = 0;
4543
4559
        TALLOC_CTX *_mem_save_text_status_0;
4544
4560
        if (ndr_flags & NDR_SCALARS) {
4545
4561
                NDR_CHECK(ndr_pull_align(ndr, 4));
4596
4612
                        NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4597
4613
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4598
4614
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4599
 
                        if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4600
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
 
4615
                        size_printer_name_1 = ndr_get_array_size(ndr, &r->printer_name);
 
4616
                        length_printer_name_1 = ndr_get_array_length(ndr, &r->printer_name);
 
4617
                        if (length_printer_name_1 > size_printer_name_1) {
 
4618
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printer_name_1, length_printer_name_1);
4601
4619
                        }
4602
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4603
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
 
4620
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
 
4621
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
4604
4622
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4605
4623
                }
4606
4624
                if (r->server_name) {
4608
4626
                        NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4609
4627
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4610
4628
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4611
 
                        if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4612
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
 
4629
                        size_server_name_1 = ndr_get_array_size(ndr, &r->server_name);
 
4630
                        length_server_name_1 = ndr_get_array_length(ndr, &r->server_name);
 
4631
                        if (length_server_name_1 > size_server_name_1) {
 
4632
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1);
4613
4633
                        }
4614
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4615
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
 
4634
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
 
4635
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
4616
4636
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4617
4637
                }
4618
4638
                if (r->user_name) {
4620
4640
                        NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4621
4641
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4622
4642
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4623
 
                        if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4624
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
 
4643
                        size_user_name_1 = ndr_get_array_size(ndr, &r->user_name);
 
4644
                        length_user_name_1 = ndr_get_array_length(ndr, &r->user_name);
 
4645
                        if (length_user_name_1 > size_user_name_1) {
 
4646
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_name_1, length_user_name_1);
4625
4647
                        }
4626
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4627
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
 
4648
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
 
4649
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
4628
4650
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4629
4651
                }
4630
4652
                if (r->document_name) {
4632
4654
                        NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4633
4655
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4634
4656
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4635
 
                        if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4636
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
 
4657
                        size_document_name_1 = ndr_get_array_size(ndr, &r->document_name);
 
4658
                        length_document_name_1 = ndr_get_array_length(ndr, &r->document_name);
 
4659
                        if (length_document_name_1 > size_document_name_1) {
 
4660
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_document_name_1, length_document_name_1);
4637
4661
                        }
4638
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4639
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
 
4662
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
 
4663
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
4640
4664
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4641
4665
                }
4642
4666
                if (r->data_type) {
4644
4668
                        NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4645
4669
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4646
4670
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4647
 
                        if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4648
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
 
4671
                        size_data_type_1 = ndr_get_array_size(ndr, &r->data_type);
 
4672
                        length_data_type_1 = ndr_get_array_length(ndr, &r->data_type);
 
4673
                        if (length_data_type_1 > size_data_type_1) {
 
4674
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_type_1, length_data_type_1);
4649
4675
                        }
4650
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4651
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
 
4676
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
 
4677
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
4652
4678
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4653
4679
                }
4654
4680
                if (r->text_status) {
4656
4682
                        NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4657
4683
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4658
4684
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4659
 
                        if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
4660
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
 
4685
                        size_text_status_1 = ndr_get_array_size(ndr, &r->text_status);
 
4686
                        length_text_status_1 = ndr_get_array_length(ndr, &r->text_status);
 
4687
                        if (length_text_status_1 > size_text_status_1) {
 
4688
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_text_status_1, length_text_status_1);
4661
4689
                        }
4662
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
4663
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
 
4690
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
 
4691
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
4664
4692
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4665
4693
                }
4666
4694
        }
4813
4841
static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
4814
4842
{
4815
4843
        uint32_t _ptr_printer_name;
 
4844
        uint32_t size_printer_name_1 = 0;
 
4845
        uint32_t length_printer_name_1 = 0;
4816
4846
        TALLOC_CTX *_mem_save_printer_name_0;
4817
4847
        uint32_t _ptr_server_name;
 
4848
        uint32_t size_server_name_1 = 0;
 
4849
        uint32_t length_server_name_1 = 0;
4818
4850
        TALLOC_CTX *_mem_save_server_name_0;
4819
4851
        uint32_t _ptr_user_name;
 
4852
        uint32_t size_user_name_1 = 0;
 
4853
        uint32_t length_user_name_1 = 0;
4820
4854
        TALLOC_CTX *_mem_save_user_name_0;
4821
4855
        uint32_t _ptr_document_name;
 
4856
        uint32_t size_document_name_1 = 0;
 
4857
        uint32_t length_document_name_1 = 0;
4822
4858
        TALLOC_CTX *_mem_save_document_name_0;
4823
4859
        uint32_t _ptr_notify_name;
 
4860
        uint32_t size_notify_name_1 = 0;
 
4861
        uint32_t length_notify_name_1 = 0;
4824
4862
        TALLOC_CTX *_mem_save_notify_name_0;
4825
4863
        uint32_t _ptr_data_type;
 
4864
        uint32_t size_data_type_1 = 0;
 
4865
        uint32_t length_data_type_1 = 0;
4826
4866
        TALLOC_CTX *_mem_save_data_type_0;
4827
4867
        uint32_t _ptr_print_processor;
 
4868
        uint32_t size_print_processor_1 = 0;
 
4869
        uint32_t length_print_processor_1 = 0;
4828
4870
        TALLOC_CTX *_mem_save_print_processor_0;
4829
4871
        uint32_t _ptr_parameters;
 
4872
        uint32_t size_parameters_1 = 0;
 
4873
        uint32_t length_parameters_1 = 0;
4830
4874
        TALLOC_CTX *_mem_save_parameters_0;
4831
4875
        uint32_t _ptr_driver_name;
 
4876
        uint32_t size_driver_name_1 = 0;
 
4877
        uint32_t length_driver_name_1 = 0;
4832
4878
        TALLOC_CTX *_mem_save_driver_name_0;
4833
4879
        uint32_t _ptr_text_status;
 
4880
        uint32_t size_text_status_1 = 0;
 
4881
        uint32_t length_text_status_1 = 0;
4834
4882
        TALLOC_CTX *_mem_save_text_status_0;
4835
4883
        if (ndr_flags & NDR_SCALARS) {
4836
4884
                NDR_CHECK(ndr_pull_align(ndr, 4));
4917
4965
                        NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4918
4966
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4919
4967
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4920
 
                        if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4921
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
 
4968
                        size_printer_name_1 = ndr_get_array_size(ndr, &r->printer_name);
 
4969
                        length_printer_name_1 = ndr_get_array_length(ndr, &r->printer_name);
 
4970
                        if (length_printer_name_1 > size_printer_name_1) {
 
4971
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printer_name_1, length_printer_name_1);
4922
4972
                        }
4923
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4924
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
 
4973
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
 
4974
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
4925
4975
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4926
4976
                }
4927
4977
                if (r->server_name) {
4929
4979
                        NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4930
4980
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4931
4981
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4932
 
                        if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4933
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
 
4982
                        size_server_name_1 = ndr_get_array_size(ndr, &r->server_name);
 
4983
                        length_server_name_1 = ndr_get_array_length(ndr, &r->server_name);
 
4984
                        if (length_server_name_1 > size_server_name_1) {
 
4985
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1);
4934
4986
                        }
4935
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4936
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
 
4987
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
 
4988
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
4937
4989
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4938
4990
                }
4939
4991
                if (r->user_name) {
4941
4993
                        NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4942
4994
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4943
4995
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4944
 
                        if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4945
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
 
4996
                        size_user_name_1 = ndr_get_array_size(ndr, &r->user_name);
 
4997
                        length_user_name_1 = ndr_get_array_length(ndr, &r->user_name);
 
4998
                        if (length_user_name_1 > size_user_name_1) {
 
4999
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_name_1, length_user_name_1);
4946
5000
                        }
4947
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4948
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
 
5001
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
 
5002
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
4949
5003
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4950
5004
                }
4951
5005
                if (r->document_name) {
4953
5007
                        NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4954
5008
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4955
5009
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4956
 
                        if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4957
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
 
5010
                        size_document_name_1 = ndr_get_array_size(ndr, &r->document_name);
 
5011
                        length_document_name_1 = ndr_get_array_length(ndr, &r->document_name);
 
5012
                        if (length_document_name_1 > size_document_name_1) {
 
5013
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_document_name_1, length_document_name_1);
4958
5014
                        }
4959
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4960
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
 
5015
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
 
5016
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
4961
5017
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4962
5018
                }
4963
5019
                if (r->notify_name) {
4965
5021
                        NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4966
5022
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
4967
5023
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
4968
 
                        if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
4969
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
 
5024
                        size_notify_name_1 = ndr_get_array_size(ndr, &r->notify_name);
 
5025
                        length_notify_name_1 = ndr_get_array_length(ndr, &r->notify_name);
 
5026
                        if (length_notify_name_1 > size_notify_name_1) {
 
5027
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_notify_name_1, length_notify_name_1);
4970
5028
                        }
4971
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
4972
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
 
5029
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_notify_name_1, sizeof(uint16_t)));
 
5030
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, length_notify_name_1, sizeof(uint16_t), CH_UTF16));
4973
5031
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4974
5032
                }
4975
5033
                if (r->data_type) {
4977
5035
                        NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4978
5036
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4979
5037
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4980
 
                        if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4981
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
 
5038
                        size_data_type_1 = ndr_get_array_size(ndr, &r->data_type);
 
5039
                        length_data_type_1 = ndr_get_array_length(ndr, &r->data_type);
 
5040
                        if (length_data_type_1 > size_data_type_1) {
 
5041
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_type_1, length_data_type_1);
4982
5042
                        }
4983
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4984
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
 
5043
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
 
5044
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
4985
5045
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4986
5046
                }
4987
5047
                if (r->print_processor) {
4989
5049
                        NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4990
5050
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
4991
5051
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
4992
 
                        if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
4993
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
 
5052
                        size_print_processor_1 = ndr_get_array_size(ndr, &r->print_processor);
 
5053
                        length_print_processor_1 = ndr_get_array_length(ndr, &r->print_processor);
 
5054
                        if (length_print_processor_1 > size_print_processor_1) {
 
5055
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_1, length_print_processor_1);
4994
5056
                        }
4995
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
4996
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
 
5057
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
 
5058
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
4997
5059
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4998
5060
                }
4999
5061
                if (r->parameters) {
5001
5063
                        NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5002
5064
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5003
5065
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5004
 
                        if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5005
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
 
5066
                        size_parameters_1 = ndr_get_array_size(ndr, &r->parameters);
 
5067
                        length_parameters_1 = ndr_get_array_length(ndr, &r->parameters);
 
5068
                        if (length_parameters_1 > size_parameters_1) {
 
5069
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_parameters_1, length_parameters_1);
5006
5070
                        }
5007
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5008
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
 
5071
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
 
5072
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
5009
5073
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5010
5074
                }
5011
5075
                if (r->driver_name) {
5013
5077
                        NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5014
5078
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5015
5079
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5016
 
                        if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5017
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
 
5080
                        size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
 
5081
                        length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
 
5082
                        if (length_driver_name_1 > size_driver_name_1) {
 
5083
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
5018
5084
                        }
5019
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5020
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
 
5085
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
 
5086
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
5021
5087
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5022
5088
                }
5023
5089
                if (r->text_status) {
5025
5091
                        NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5026
5092
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5027
5093
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5028
 
                        if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5029
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
 
5094
                        size_text_status_1 = ndr_get_array_size(ndr, &r->text_status);
 
5095
                        length_text_status_1 = ndr_get_array_length(ndr, &r->text_status);
 
5096
                        if (length_text_status_1 > size_text_status_1) {
 
5097
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_text_status_1, length_text_status_1);
5030
5098
                        }
5031
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5032
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
 
5099
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
 
5100
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
5033
5101
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5034
5102
                }
5035
5103
        }
5213
5281
static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5214
5282
{
5215
5283
        uint32_t _ptr_printer_name;
 
5284
        uint32_t size_printer_name_1 = 0;
 
5285
        uint32_t length_printer_name_1 = 0;
5216
5286
        TALLOC_CTX *_mem_save_printer_name_0;
5217
5287
        uint32_t _ptr_server_name;
 
5288
        uint32_t size_server_name_1 = 0;
 
5289
        uint32_t length_server_name_1 = 0;
5218
5290
        TALLOC_CTX *_mem_save_server_name_0;
5219
5291
        uint32_t _ptr_user_name;
 
5292
        uint32_t size_user_name_1 = 0;
 
5293
        uint32_t length_user_name_1 = 0;
5220
5294
        TALLOC_CTX *_mem_save_user_name_0;
5221
5295
        uint32_t _ptr_document_name;
 
5296
        uint32_t size_document_name_1 = 0;
 
5297
        uint32_t length_document_name_1 = 0;
5222
5298
        TALLOC_CTX *_mem_save_document_name_0;
5223
5299
        uint32_t _ptr_notify_name;
 
5300
        uint32_t size_notify_name_1 = 0;
 
5301
        uint32_t length_notify_name_1 = 0;
5224
5302
        TALLOC_CTX *_mem_save_notify_name_0;
5225
5303
        uint32_t _ptr_data_type;
 
5304
        uint32_t size_data_type_1 = 0;
 
5305
        uint32_t length_data_type_1 = 0;
5226
5306
        TALLOC_CTX *_mem_save_data_type_0;
5227
5307
        uint32_t _ptr_print_processor;
 
5308
        uint32_t size_print_processor_1 = 0;
 
5309
        uint32_t length_print_processor_1 = 0;
5228
5310
        TALLOC_CTX *_mem_save_print_processor_0;
5229
5311
        uint32_t _ptr_parameters;
 
5312
        uint32_t size_parameters_1 = 0;
 
5313
        uint32_t length_parameters_1 = 0;
5230
5314
        TALLOC_CTX *_mem_save_parameters_0;
5231
5315
        uint32_t _ptr_driver_name;
 
5316
        uint32_t size_driver_name_1 = 0;
 
5317
        uint32_t length_driver_name_1 = 0;
5232
5318
        TALLOC_CTX *_mem_save_driver_name_0;
5233
5319
        uint32_t _ptr_text_status;
 
5320
        uint32_t size_text_status_1 = 0;
 
5321
        uint32_t length_text_status_1 = 0;
5234
5322
        TALLOC_CTX *_mem_save_text_status_0;
5235
5323
        if (ndr_flags & NDR_SCALARS) {
5236
5324
                NDR_CHECK(ndr_pull_align(ndr, 4));
5318
5406
                        NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5319
5407
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5320
5408
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5321
 
                        if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5322
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
 
5409
                        size_printer_name_1 = ndr_get_array_size(ndr, &r->printer_name);
 
5410
                        length_printer_name_1 = ndr_get_array_length(ndr, &r->printer_name);
 
5411
                        if (length_printer_name_1 > size_printer_name_1) {
 
5412
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printer_name_1, length_printer_name_1);
5323
5413
                        }
5324
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5325
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
 
5414
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
 
5415
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
5326
5416
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5327
5417
                }
5328
5418
                if (r->server_name) {
5330
5420
                        NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5331
5421
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5332
5422
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5333
 
                        if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5334
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
 
5423
                        size_server_name_1 = ndr_get_array_size(ndr, &r->server_name);
 
5424
                        length_server_name_1 = ndr_get_array_length(ndr, &r->server_name);
 
5425
                        if (length_server_name_1 > size_server_name_1) {
 
5426
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1);
5335
5427
                        }
5336
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5337
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
 
5428
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
 
5429
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
5338
5430
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5339
5431
                }
5340
5432
                if (r->user_name) {
5342
5434
                        NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5343
5435
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5344
5436
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5345
 
                        if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5346
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
 
5437
                        size_user_name_1 = ndr_get_array_size(ndr, &r->user_name);
 
5438
                        length_user_name_1 = ndr_get_array_length(ndr, &r->user_name);
 
5439
                        if (length_user_name_1 > size_user_name_1) {
 
5440
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_name_1, length_user_name_1);
5347
5441
                        }
5348
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5349
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
 
5442
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
 
5443
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
5350
5444
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5351
5445
                }
5352
5446
                if (r->document_name) {
5354
5448
                        NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5355
5449
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5356
5450
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5357
 
                        if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5358
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
 
5451
                        size_document_name_1 = ndr_get_array_size(ndr, &r->document_name);
 
5452
                        length_document_name_1 = ndr_get_array_length(ndr, &r->document_name);
 
5453
                        if (length_document_name_1 > size_document_name_1) {
 
5454
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_document_name_1, length_document_name_1);
5359
5455
                        }
5360
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5361
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
 
5456
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
 
5457
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
5362
5458
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5363
5459
                }
5364
5460
                if (r->notify_name) {
5366
5462
                        NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5367
5463
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5368
5464
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5369
 
                        if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5370
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
 
5465
                        size_notify_name_1 = ndr_get_array_size(ndr, &r->notify_name);
 
5466
                        length_notify_name_1 = ndr_get_array_length(ndr, &r->notify_name);
 
5467
                        if (length_notify_name_1 > size_notify_name_1) {
 
5468
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_notify_name_1, length_notify_name_1);
5371
5469
                        }
5372
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5373
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
 
5470
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_notify_name_1, sizeof(uint16_t)));
 
5471
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, length_notify_name_1, sizeof(uint16_t), CH_UTF16));
5374
5472
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5375
5473
                }
5376
5474
                if (r->data_type) {
5378
5476
                        NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5379
5477
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5380
5478
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5381
 
                        if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5382
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
 
5479
                        size_data_type_1 = ndr_get_array_size(ndr, &r->data_type);
 
5480
                        length_data_type_1 = ndr_get_array_length(ndr, &r->data_type);
 
5481
                        if (length_data_type_1 > size_data_type_1) {
 
5482
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_type_1, length_data_type_1);
5383
5483
                        }
5384
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5385
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
 
5484
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
 
5485
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
5386
5486
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5387
5487
                }
5388
5488
                if (r->print_processor) {
5390
5490
                        NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5391
5491
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5392
5492
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5393
 
                        if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5394
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
 
5493
                        size_print_processor_1 = ndr_get_array_size(ndr, &r->print_processor);
 
5494
                        length_print_processor_1 = ndr_get_array_length(ndr, &r->print_processor);
 
5495
                        if (length_print_processor_1 > size_print_processor_1) {
 
5496
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_1, length_print_processor_1);
5395
5497
                        }
5396
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5397
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
 
5498
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
 
5499
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
5398
5500
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5399
5501
                }
5400
5502
                if (r->parameters) {
5402
5504
                        NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5403
5505
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5404
5506
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5405
 
                        if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5406
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
 
5507
                        size_parameters_1 = ndr_get_array_size(ndr, &r->parameters);
 
5508
                        length_parameters_1 = ndr_get_array_length(ndr, &r->parameters);
 
5509
                        if (length_parameters_1 > size_parameters_1) {
 
5510
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_parameters_1, length_parameters_1);
5407
5511
                        }
5408
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5409
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
 
5512
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
 
5513
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
5410
5514
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5411
5515
                }
5412
5516
                if (r->driver_name) {
5414
5518
                        NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5415
5519
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5416
5520
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5417
 
                        if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5418
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
 
5521
                        size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
 
5522
                        length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
 
5523
                        if (length_driver_name_1 > size_driver_name_1) {
 
5524
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
5419
5525
                        }
5420
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5421
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
 
5526
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
 
5527
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
5422
5528
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5423
5529
                }
5424
5530
                if (r->text_status) {
5426
5532
                        NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5427
5533
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5428
5534
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5429
 
                        if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5430
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
 
5535
                        size_text_status_1 = ndr_get_array_size(ndr, &r->text_status);
 
5536
                        length_text_status_1 = ndr_get_array_length(ndr, &r->text_status);
 
5537
                        if (length_text_status_1 > size_text_status_1) {
 
5538
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_text_status_1, length_text_status_1);
5431
5539
                        }
5432
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5433
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
 
5540
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
 
5541
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
5434
5542
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5435
5543
                }
5436
5544
        }
5585
5693
        int level;
5586
5694
        uint32_t _level;
5587
5695
        TALLOC_CTX *_mem_save_info1_0;
 
5696
        uint32_t _ptr_info1;
5588
5697
        TALLOC_CTX *_mem_save_info2_0;
 
5698
        uint32_t _ptr_info2;
5589
5699
        TALLOC_CTX *_mem_save_info3_0;
 
5700
        uint32_t _ptr_info3;
5590
5701
        TALLOC_CTX *_mem_save_info4_0;
 
5702
        uint32_t _ptr_info4;
5591
5703
        level = ndr_pull_get_switch_value(ndr, r);
5592
5704
        if (ndr_flags & NDR_SCALARS) {
5593
5705
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5596
5708
                }
5597
5709
                switch (level) {
5598
5710
                        case 1: {
5599
 
                                uint32_t _ptr_info1;
5600
5711
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5601
5712
                                if (_ptr_info1) {
5602
5713
                                        NDR_PULL_ALLOC(ndr, r->info1);
5606
5717
                        break; }
5607
5718
 
5608
5719
                        case 2: {
5609
 
                                uint32_t _ptr_info2;
5610
5720
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5611
5721
                                if (_ptr_info2) {
5612
5722
                                        NDR_PULL_ALLOC(ndr, r->info2);
5616
5726
                        break; }
5617
5727
 
5618
5728
                        case 3: {
5619
 
                                uint32_t _ptr_info3;
5620
5729
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5621
5730
                                if (_ptr_info3) {
5622
5731
                                        NDR_PULL_ALLOC(ndr, r->info3);
5626
5735
                        break; }
5627
5736
 
5628
5737
                        case 4: {
5629
 
                                uint32_t _ptr_info4;
5630
5738
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
5631
5739
                                if (_ptr_info4) {
5632
5740
                                        NDR_PULL_ALLOC(ndr, r->info4);
5886
5994
static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
5887
5995
{
5888
5996
        uint32_t _ptr_servername;
 
5997
        uint32_t size_servername_1 = 0;
 
5998
        uint32_t length_servername_1 = 0;
5889
5999
        TALLOC_CTX *_mem_save_servername_0;
5890
6000
        uint32_t _ptr_printername;
 
6001
        uint32_t size_printername_1 = 0;
 
6002
        uint32_t length_printername_1 = 0;
5891
6003
        TALLOC_CTX *_mem_save_printername_0;
5892
6004
        if (ndr_flags & NDR_SCALARS) {
5893
6005
                NDR_CHECK(ndr_pull_align(ndr, 4));
5937
6049
                        NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
5938
6050
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
5939
6051
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
5940
 
                        if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
5941
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
 
6052
                        size_servername_1 = ndr_get_array_size(ndr, &r->servername);
 
6053
                        length_servername_1 = ndr_get_array_length(ndr, &r->servername);
 
6054
                        if (length_servername_1 > size_servername_1) {
 
6055
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
5942
6056
                        }
5943
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
5944
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
 
6057
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
 
6058
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
5945
6059
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
5946
6060
                }
5947
6061
                if (r->printername) {
5949
6063
                        NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
5950
6064
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
5951
6065
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
5952
 
                        if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
5953
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
 
6066
                        size_printername_1 = ndr_get_array_size(ndr, &r->printername);
 
6067
                        length_printername_1 = ndr_get_array_length(ndr, &r->printername);
 
6068
                        if (length_printername_1 > size_printername_1) {
 
6069
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
5954
6070
                        }
5955
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
5956
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
 
6071
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
 
6072
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
5957
6073
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
5958
6074
                }
5959
6075
        }
6041
6157
static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
6042
6158
{
6043
6159
        uint32_t _ptr_description;
 
6160
        uint32_t size_description_1 = 0;
 
6161
        uint32_t length_description_1 = 0;
6044
6162
        TALLOC_CTX *_mem_save_description_0;
6045
6163
        uint32_t _ptr_name;
 
6164
        uint32_t size_name_1 = 0;
 
6165
        uint32_t length_name_1 = 0;
6046
6166
        TALLOC_CTX *_mem_save_name_0;
6047
6167
        uint32_t _ptr_comment;
 
6168
        uint32_t size_comment_1 = 0;
 
6169
        uint32_t length_comment_1 = 0;
6048
6170
        TALLOC_CTX *_mem_save_comment_0;
6049
6171
        if (ndr_flags & NDR_SCALARS) {
6050
6172
                NDR_CHECK(ndr_pull_align(ndr, 4));
6074
6196
                        NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6075
6197
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6076
6198
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6077
 
                        if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6078
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->description), ndr_get_array_length(ndr, &r->description));
 
6199
                        size_description_1 = ndr_get_array_size(ndr, &r->description);
 
6200
                        length_description_1 = ndr_get_array_length(ndr, &r->description);
 
6201
                        if (length_description_1 > size_description_1) {
 
6202
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_description_1, length_description_1);
6079
6203
                        }
6080
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6081
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
 
6204
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_description_1, sizeof(uint16_t)));
 
6205
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, length_description_1, sizeof(uint16_t), CH_UTF16));
6082
6206
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6083
6207
                }
6084
6208
                if (r->name) {
6086
6210
                        NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6087
6211
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6088
6212
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6089
 
                        if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6090
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
 
6213
                        size_name_1 = ndr_get_array_size(ndr, &r->name);
 
6214
                        length_name_1 = ndr_get_array_length(ndr, &r->name);
 
6215
                        if (length_name_1 > size_name_1) {
 
6216
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1);
6091
6217
                        }
6092
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6093
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
 
6218
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t)));
 
6219
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16));
6094
6220
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6095
6221
                }
6096
6222
                if (r->comment) {
6098
6224
                        NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6099
6225
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6100
6226
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6101
 
                        if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6102
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
 
6227
                        size_comment_1 = ndr_get_array_size(ndr, &r->comment);
 
6228
                        length_comment_1 = ndr_get_array_length(ndr, &r->comment);
 
6229
                        if (length_comment_1 > size_comment_1) {
 
6230
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1);
6103
6231
                        }
6104
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6105
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
 
6232
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t)));
 
6233
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16));
6106
6234
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6107
6235
                }
6108
6236
        }
6251
6379
static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6252
6380
{
6253
6381
        uint32_t _ptr_servername;
 
6382
        uint32_t size_servername_1 = 0;
 
6383
        uint32_t length_servername_1 = 0;
6254
6384
        TALLOC_CTX *_mem_save_servername_0;
6255
6385
        uint32_t _ptr_printername;
 
6386
        uint32_t size_printername_1 = 0;
 
6387
        uint32_t length_printername_1 = 0;
6256
6388
        TALLOC_CTX *_mem_save_printername_0;
6257
6389
        uint32_t _ptr_sharename;
 
6390
        uint32_t size_sharename_1 = 0;
 
6391
        uint32_t length_sharename_1 = 0;
6258
6392
        TALLOC_CTX *_mem_save_sharename_0;
6259
6393
        uint32_t _ptr_portname;
 
6394
        uint32_t size_portname_1 = 0;
 
6395
        uint32_t length_portname_1 = 0;
6260
6396
        TALLOC_CTX *_mem_save_portname_0;
6261
6397
        uint32_t _ptr_drivername;
 
6398
        uint32_t size_drivername_1 = 0;
 
6399
        uint32_t length_drivername_1 = 0;
6262
6400
        TALLOC_CTX *_mem_save_drivername_0;
6263
6401
        uint32_t _ptr_comment;
 
6402
        uint32_t size_comment_1 = 0;
 
6403
        uint32_t length_comment_1 = 0;
6264
6404
        TALLOC_CTX *_mem_save_comment_0;
6265
6405
        uint32_t _ptr_location;
 
6406
        uint32_t size_location_1 = 0;
 
6407
        uint32_t length_location_1 = 0;
6266
6408
        TALLOC_CTX *_mem_save_location_0;
6267
6409
        uint32_t _ptr_devmode;
6268
6410
        TALLOC_CTX *_mem_save_devmode_0;
6269
6411
        uint32_t _ptr_sepfile;
 
6412
        uint32_t size_sepfile_1 = 0;
 
6413
        uint32_t length_sepfile_1 = 0;
6270
6414
        TALLOC_CTX *_mem_save_sepfile_0;
6271
6415
        uint32_t _ptr_printprocessor;
 
6416
        uint32_t size_printprocessor_1 = 0;
 
6417
        uint32_t length_printprocessor_1 = 0;
6272
6418
        TALLOC_CTX *_mem_save_printprocessor_0;
6273
6419
        uint32_t _ptr_datatype;
 
6420
        uint32_t size_datatype_1 = 0;
 
6421
        uint32_t length_datatype_1 = 0;
6274
6422
        TALLOC_CTX *_mem_save_datatype_0;
6275
6423
        uint32_t _ptr_parameters;
 
6424
        uint32_t size_parameters_1 = 0;
 
6425
        uint32_t length_parameters_1 = 0;
6276
6426
        TALLOC_CTX *_mem_save_parameters_0;
6277
6427
        uint32_t _ptr_secdesc;
6278
6428
        TALLOC_CTX *_mem_save_secdesc_0;
6374
6524
                        NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6375
6525
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6376
6526
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6377
 
                        if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6378
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
 
6527
                        size_servername_1 = ndr_get_array_size(ndr, &r->servername);
 
6528
                        length_servername_1 = ndr_get_array_length(ndr, &r->servername);
 
6529
                        if (length_servername_1 > size_servername_1) {
 
6530
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
6379
6531
                        }
6380
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6381
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
 
6532
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
 
6533
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
6382
6534
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6383
6535
                }
6384
6536
                if (r->printername) {
6386
6538
                        NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6387
6539
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6388
6540
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6389
 
                        if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6390
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
 
6541
                        size_printername_1 = ndr_get_array_size(ndr, &r->printername);
 
6542
                        length_printername_1 = ndr_get_array_length(ndr, &r->printername);
 
6543
                        if (length_printername_1 > size_printername_1) {
 
6544
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
6391
6545
                        }
6392
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6393
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
 
6546
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
 
6547
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
6394
6548
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6395
6549
                }
6396
6550
                if (r->sharename) {
6398
6552
                        NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
6399
6553
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
6400
6554
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
6401
 
                        if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
6402
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sharename), ndr_get_array_length(ndr, &r->sharename));
 
6555
                        size_sharename_1 = ndr_get_array_size(ndr, &r->sharename);
 
6556
                        length_sharename_1 = ndr_get_array_length(ndr, &r->sharename);
 
6557
                        if (length_sharename_1 > size_sharename_1) {
 
6558
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_sharename_1, length_sharename_1);
6403
6559
                        }
6404
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
6405
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
 
6560
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_sharename_1, sizeof(uint16_t)));
 
6561
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, length_sharename_1, sizeof(uint16_t), CH_UTF16));
6406
6562
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
6407
6563
                }
6408
6564
                if (r->portname) {
6410
6566
                        NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6411
6567
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6412
6568
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6413
 
                        if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6414
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
 
6569
                        size_portname_1 = ndr_get_array_size(ndr, &r->portname);
 
6570
                        length_portname_1 = ndr_get_array_length(ndr, &r->portname);
 
6571
                        if (length_portname_1 > size_portname_1) {
 
6572
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_portname_1, length_portname_1);
6415
6573
                        }
6416
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6417
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
 
6574
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_portname_1, sizeof(uint16_t)));
 
6575
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, length_portname_1, sizeof(uint16_t), CH_UTF16));
6418
6576
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6419
6577
                }
6420
6578
                if (r->drivername) {
6422
6580
                        NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
6423
6581
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
6424
6582
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
6425
 
                        if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
6426
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->drivername), ndr_get_array_length(ndr, &r->drivername));
 
6583
                        size_drivername_1 = ndr_get_array_size(ndr, &r->drivername);
 
6584
                        length_drivername_1 = ndr_get_array_length(ndr, &r->drivername);
 
6585
                        if (length_drivername_1 > size_drivername_1) {
 
6586
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_drivername_1, length_drivername_1);
6427
6587
                        }
6428
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
6429
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
 
6588
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_drivername_1, sizeof(uint16_t)));
 
6589
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, length_drivername_1, sizeof(uint16_t), CH_UTF16));
6430
6590
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
6431
6591
                }
6432
6592
                if (r->comment) {
6434
6594
                        NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6435
6595
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6436
6596
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6437
 
                        if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6438
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
 
6597
                        size_comment_1 = ndr_get_array_size(ndr, &r->comment);
 
6598
                        length_comment_1 = ndr_get_array_length(ndr, &r->comment);
 
6599
                        if (length_comment_1 > size_comment_1) {
 
6600
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1);
6439
6601
                        }
6440
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6441
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
 
6602
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t)));
 
6603
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16));
6442
6604
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6443
6605
                }
6444
6606
                if (r->location) {
6446
6608
                        NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
6447
6609
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
6448
6610
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
6449
 
                        if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
6450
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->location), ndr_get_array_length(ndr, &r->location));
 
6611
                        size_location_1 = ndr_get_array_size(ndr, &r->location);
 
6612
                        length_location_1 = ndr_get_array_length(ndr, &r->location);
 
6613
                        if (length_location_1 > size_location_1) {
 
6614
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_location_1, length_location_1);
6451
6615
                        }
6452
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
6453
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
 
6616
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_location_1, sizeof(uint16_t)));
 
6617
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, length_location_1, sizeof(uint16_t), CH_UTF16));
6454
6618
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
6455
6619
                }
6456
6620
                if (r->devmode) {
6469
6633
                        NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
6470
6634
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
6471
6635
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
6472
 
                        if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
6473
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sepfile), ndr_get_array_length(ndr, &r->sepfile));
 
6636
                        size_sepfile_1 = ndr_get_array_size(ndr, &r->sepfile);
 
6637
                        length_sepfile_1 = ndr_get_array_length(ndr, &r->sepfile);
 
6638
                        if (length_sepfile_1 > size_sepfile_1) {
 
6639
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_sepfile_1, length_sepfile_1);
6474
6640
                        }
6475
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
6476
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
 
6641
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_sepfile_1, sizeof(uint16_t)));
 
6642
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, length_sepfile_1, sizeof(uint16_t), CH_UTF16));
6477
6643
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
6478
6644
                }
6479
6645
                if (r->printprocessor) {
6481
6647
                        NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
6482
6648
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
6483
6649
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
6484
 
                        if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
6485
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printprocessor), ndr_get_array_length(ndr, &r->printprocessor));
 
6650
                        size_printprocessor_1 = ndr_get_array_size(ndr, &r->printprocessor);
 
6651
                        length_printprocessor_1 = ndr_get_array_length(ndr, &r->printprocessor);
 
6652
                        if (length_printprocessor_1 > size_printprocessor_1) {
 
6653
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printprocessor_1, length_printprocessor_1);
6486
6654
                        }
6487
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
6488
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
 
6655
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_printprocessor_1, sizeof(uint16_t)));
 
6656
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, length_printprocessor_1, sizeof(uint16_t), CH_UTF16));
6489
6657
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
6490
6658
                }
6491
6659
                if (r->datatype) {
6493
6661
                        NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
6494
6662
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
6495
6663
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
6496
 
                        if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
6497
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->datatype), ndr_get_array_length(ndr, &r->datatype));
 
6664
                        size_datatype_1 = ndr_get_array_size(ndr, &r->datatype);
 
6665
                        length_datatype_1 = ndr_get_array_length(ndr, &r->datatype);
 
6666
                        if (length_datatype_1 > size_datatype_1) {
 
6667
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_datatype_1, length_datatype_1);
6498
6668
                        }
6499
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
6500
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
 
6669
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
 
6670
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
6501
6671
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
6502
6672
                }
6503
6673
                if (r->parameters) {
6505
6675
                        NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6506
6676
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6507
6677
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6508
 
                        if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6509
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
 
6678
                        size_parameters_1 = ndr_get_array_size(ndr, &r->parameters);
 
6679
                        length_parameters_1 = ndr_get_array_length(ndr, &r->parameters);
 
6680
                        if (length_parameters_1 > size_parameters_1) {
 
6681
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_parameters_1, length_parameters_1);
6510
6682
                        }
6511
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6512
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
 
6683
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
 
6684
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
6513
6685
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6514
6686
                }
6515
6687
                if (r->secdesc) {
6678
6850
static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
6679
6851
{
6680
6852
        uint32_t _ptr_printername;
 
6853
        uint32_t size_printername_1 = 0;
 
6854
        uint32_t length_printername_1 = 0;
6681
6855
        TALLOC_CTX *_mem_save_printername_0;
6682
6856
        uint32_t _ptr_servername;
 
6857
        uint32_t size_servername_1 = 0;
 
6858
        uint32_t length_servername_1 = 0;
6683
6859
        TALLOC_CTX *_mem_save_servername_0;
6684
6860
        if (ndr_flags & NDR_SCALARS) {
6685
6861
                NDR_CHECK(ndr_pull_align(ndr, 4));
6703
6879
                        NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6704
6880
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6705
6881
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6706
 
                        if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6707
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
 
6882
                        size_printername_1 = ndr_get_array_size(ndr, &r->printername);
 
6883
                        length_printername_1 = ndr_get_array_length(ndr, &r->printername);
 
6884
                        if (length_printername_1 > size_printername_1) {
 
6885
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
6708
6886
                        }
6709
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6710
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
 
6887
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
 
6888
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
6711
6889
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6712
6890
                }
6713
6891
                if (r->servername) {
6715
6893
                        NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6716
6894
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6717
6895
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6718
 
                        if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6719
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
 
6896
                        size_servername_1 = ndr_get_array_size(ndr, &r->servername);
 
6897
                        length_servername_1 = ndr_get_array_length(ndr, &r->servername);
 
6898
                        if (length_servername_1 > size_servername_1) {
 
6899
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
6720
6900
                        }
6721
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6722
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
 
6901
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
 
6902
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
6723
6903
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6724
6904
                }
6725
6905
        }
6776
6956
static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
6777
6957
{
6778
6958
        uint32_t _ptr_printername;
 
6959
        uint32_t size_printername_1 = 0;
 
6960
        uint32_t length_printername_1 = 0;
6779
6961
        TALLOC_CTX *_mem_save_printername_0;
6780
6962
        uint32_t _ptr_portname;
 
6963
        uint32_t size_portname_1 = 0;
 
6964
        uint32_t length_portname_1 = 0;
6781
6965
        TALLOC_CTX *_mem_save_portname_0;
6782
6966
        if (ndr_flags & NDR_SCALARS) {
6783
6967
                NDR_CHECK(ndr_pull_align(ndr, 4));
6803
6987
                        NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6804
6988
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6805
6989
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6806
 
                        if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6807
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
 
6990
                        size_printername_1 = ndr_get_array_size(ndr, &r->printername);
 
6991
                        length_printername_1 = ndr_get_array_length(ndr, &r->printername);
 
6992
                        if (length_printername_1 > size_printername_1) {
 
6993
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
6808
6994
                        }
6809
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6810
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
 
6995
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
 
6996
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
6811
6997
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6812
6998
                }
6813
6999
                if (r->portname) {
6815
7001
                        NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6816
7002
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6817
7003
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6818
 
                        if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6819
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
 
7004
                        size_portname_1 = ndr_get_array_size(ndr, &r->portname);
 
7005
                        length_portname_1 = ndr_get_array_length(ndr, &r->portname);
 
7006
                        if (length_portname_1 > size_portname_1) {
 
7007
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_portname_1, length_portname_1);
6820
7008
                        }
6821
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6822
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
 
7009
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_portname_1, sizeof(uint16_t)));
 
7010
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, length_portname_1, sizeof(uint16_t), CH_UTF16));
6823
7011
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6824
7012
                }
6825
7013
        }
6899
7087
static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
6900
7088
{
6901
7089
        uint32_t _ptr_guid;
 
7090
        uint32_t size_guid_1 = 0;
 
7091
        uint32_t length_guid_1 = 0;
6902
7092
        TALLOC_CTX *_mem_save_guid_0;
6903
7093
        if (ndr_flags & NDR_SCALARS) {
6904
7094
                NDR_CHECK(ndr_pull_align(ndr, 4));
6916
7106
                        NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
6917
7107
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
6918
7108
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
6919
 
                        if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
6920
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->guid), ndr_get_array_length(ndr, &r->guid));
 
7109
                        size_guid_1 = ndr_get_array_size(ndr, &r->guid);
 
7110
                        length_guid_1 = ndr_get_array_length(ndr, &r->guid);
 
7111
                        if (length_guid_1 > size_guid_1) {
 
7112
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_guid_1, length_guid_1);
6921
7113
                        }
6922
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
6923
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
 
7114
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_guid_1, sizeof(uint16_t)));
 
7115
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, length_guid_1, sizeof(uint16_t), CH_UTF16));
6924
7116
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
6925
7117
                }
6926
7118
        }
7068
7260
        int level;
7069
7261
        uint32_t _level;
7070
7262
        TALLOC_CTX *_mem_save_info0_0;
 
7263
        uint32_t _ptr_info0;
7071
7264
        TALLOC_CTX *_mem_save_info1_0;
 
7265
        uint32_t _ptr_info1;
7072
7266
        TALLOC_CTX *_mem_save_info2_0;
 
7267
        uint32_t _ptr_info2;
7073
7268
        TALLOC_CTX *_mem_save_info3_0;
 
7269
        uint32_t _ptr_info3;
7074
7270
        TALLOC_CTX *_mem_save_info4_0;
 
7271
        uint32_t _ptr_info4;
7075
7272
        TALLOC_CTX *_mem_save_info5_0;
 
7273
        uint32_t _ptr_info5;
7076
7274
        TALLOC_CTX *_mem_save_info6_0;
 
7275
        uint32_t _ptr_info6;
7077
7276
        TALLOC_CTX *_mem_save_info7_0;
 
7277
        uint32_t _ptr_info7;
7078
7278
        TALLOC_CTX *_mem_save_info8_0;
 
7279
        uint32_t _ptr_info8;
7079
7280
        TALLOC_CTX *_mem_save_info9_0;
 
7281
        uint32_t _ptr_info9;
7080
7282
        level = ndr_pull_get_switch_value(ndr, r);
7081
7283
        if (ndr_flags & NDR_SCALARS) {
7082
7284
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7085
7287
                }
7086
7288
                switch (level) {
7087
7289
                        case 0: {
7088
 
                                uint32_t _ptr_info0;
7089
7290
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7090
7291
                                if (_ptr_info0) {
7091
7292
                                        NDR_PULL_ALLOC(ndr, r->info0);
7095
7296
                        break; }
7096
7297
 
7097
7298
                        case 1: {
7098
 
                                uint32_t _ptr_info1;
7099
7299
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7100
7300
                                if (_ptr_info1) {
7101
7301
                                        NDR_PULL_ALLOC(ndr, r->info1);
7105
7305
                        break; }
7106
7306
 
7107
7307
                        case 2: {
7108
 
                                uint32_t _ptr_info2;
7109
7308
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7110
7309
                                if (_ptr_info2) {
7111
7310
                                        NDR_PULL_ALLOC(ndr, r->info2);
7115
7314
                        break; }
7116
7315
 
7117
7316
                        case 3: {
7118
 
                                uint32_t _ptr_info3;
7119
7317
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7120
7318
                                if (_ptr_info3) {
7121
7319
                                        NDR_PULL_ALLOC(ndr, r->info3);
7125
7323
                        break; }
7126
7324
 
7127
7325
                        case 4: {
7128
 
                                uint32_t _ptr_info4;
7129
7326
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7130
7327
                                if (_ptr_info4) {
7131
7328
                                        NDR_PULL_ALLOC(ndr, r->info4);
7135
7332
                        break; }
7136
7333
 
7137
7334
                        case 5: {
7138
 
                                uint32_t _ptr_info5;
7139
7335
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7140
7336
                                if (_ptr_info5) {
7141
7337
                                        NDR_PULL_ALLOC(ndr, r->info5);
7145
7341
                        break; }
7146
7342
 
7147
7343
                        case 6: {
7148
 
                                uint32_t _ptr_info6;
7149
7344
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7150
7345
                                if (_ptr_info6) {
7151
7346
                                        NDR_PULL_ALLOC(ndr, r->info6);
7155
7350
                        break; }
7156
7351
 
7157
7352
                        case 7: {
7158
 
                                uint32_t _ptr_info7;
7159
7353
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7160
7354
                                if (_ptr_info7) {
7161
7355
                                        NDR_PULL_ALLOC(ndr, r->info7);
7165
7359
                        break; }
7166
7360
 
7167
7361
                        case 8: {
7168
 
                                uint32_t _ptr_info8;
7169
7362
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7170
7363
                                if (_ptr_info8) {
7171
7364
                                        NDR_PULL_ALLOC(ndr, r->info8);
7175
7368
                        break; }
7176
7369
 
7177
7370
                        case 9: {
7178
 
                                uint32_t _ptr_info9;
7179
7371
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7180
7372
                                if (_ptr_info9) {
7181
7373
                                        NDR_PULL_ALLOC(ndr, r->info9);
7492
7684
static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
7493
7685
{
7494
7686
        uint32_t _ptr_driver_name;
 
7687
        uint32_t size_driver_name_1 = 0;
 
7688
        uint32_t length_driver_name_1 = 0;
7495
7689
        TALLOC_CTX *_mem_save_driver_name_0;
7496
7690
        if (ndr_flags & NDR_SCALARS) {
7497
7691
                NDR_CHECK(ndr_pull_align(ndr, 4));
7508
7702
                        NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7509
7703
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7510
7704
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7511
 
                        if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7512
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
 
7705
                        size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
 
7706
                        length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
 
7707
                        if (length_driver_name_1 > size_driver_name_1) {
 
7708
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
7513
7709
                        }
7514
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7515
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
 
7710
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
 
7711
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
7516
7712
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7517
7713
                }
7518
7714
        }
7608
7804
static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
7609
7805
{
7610
7806
        uint32_t _ptr_driver_name;
 
7807
        uint32_t size_driver_name_1 = 0;
 
7808
        uint32_t length_driver_name_1 = 0;
7611
7809
        TALLOC_CTX *_mem_save_driver_name_0;
7612
7810
        uint32_t _ptr_architecture;
 
7811
        uint32_t size_architecture_1 = 0;
 
7812
        uint32_t length_architecture_1 = 0;
7613
7813
        TALLOC_CTX *_mem_save_architecture_0;
7614
7814
        uint32_t _ptr_driver_path;
 
7815
        uint32_t size_driver_path_1 = 0;
 
7816
        uint32_t length_driver_path_1 = 0;
7615
7817
        TALLOC_CTX *_mem_save_driver_path_0;
7616
7818
        uint32_t _ptr_data_file;
 
7819
        uint32_t size_data_file_1 = 0;
 
7820
        uint32_t length_data_file_1 = 0;
7617
7821
        TALLOC_CTX *_mem_save_data_file_0;
7618
7822
        uint32_t _ptr_config_file;
 
7823
        uint32_t size_config_file_1 = 0;
 
7824
        uint32_t length_config_file_1 = 0;
7619
7825
        TALLOC_CTX *_mem_save_config_file_0;
7620
7826
        if (ndr_flags & NDR_SCALARS) {
7621
7827
                NDR_CHECK(ndr_pull_align(ndr, 4));
7657
7863
                        NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7658
7864
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7659
7865
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7660
 
                        if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7661
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
 
7866
                        size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
 
7867
                        length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
 
7868
                        if (length_driver_name_1 > size_driver_name_1) {
 
7869
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
7662
7870
                        }
7663
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7664
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
 
7871
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
 
7872
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
7665
7873
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7666
7874
                }
7667
7875
                if (r->architecture) {
7669
7877
                        NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7670
7878
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7671
7879
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7672
 
                        if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7673
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
 
7880
                        size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
 
7881
                        length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
 
7882
                        if (length_architecture_1 > size_architecture_1) {
 
7883
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
7674
7884
                        }
7675
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7676
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
 
7885
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
 
7886
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
7677
7887
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7678
7888
                }
7679
7889
                if (r->driver_path) {
7681
7891
                        NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7682
7892
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7683
7893
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7684
 
                        if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7685
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
 
7894
                        size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
 
7895
                        length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
 
7896
                        if (length_driver_path_1 > size_driver_path_1) {
 
7897
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
7686
7898
                        }
7687
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7688
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
 
7899
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
 
7900
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
7689
7901
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7690
7902
                }
7691
7903
                if (r->data_file) {
7693
7905
                        NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7694
7906
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7695
7907
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7696
 
                        if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7697
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
 
7908
                        size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
 
7909
                        length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
 
7910
                        if (length_data_file_1 > size_data_file_1) {
 
7911
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
7698
7912
                        }
7699
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7700
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
 
7913
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
 
7914
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
7701
7915
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7702
7916
                }
7703
7917
                if (r->config_file) {
7705
7919
                        NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7706
7920
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7707
7921
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7708
 
                        if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7709
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
 
7922
                        size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
 
7923
                        length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
 
7924
                        if (length_config_file_1 > size_config_file_1) {
 
7925
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
7710
7926
                        }
7711
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7712
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
 
7927
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
 
7928
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
7713
7929
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7714
7930
                }
7715
7931
        }
7829
8045
static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
7830
8046
{
7831
8047
        uint32_t _ptr_driver_name;
 
8048
        uint32_t size_driver_name_1 = 0;
 
8049
        uint32_t length_driver_name_1 = 0;
7832
8050
        TALLOC_CTX *_mem_save_driver_name_0;
7833
8051
        uint32_t _ptr_architecture;
 
8052
        uint32_t size_architecture_1 = 0;
 
8053
        uint32_t length_architecture_1 = 0;
7834
8054
        TALLOC_CTX *_mem_save_architecture_0;
7835
8055
        uint32_t _ptr_driver_path;
 
8056
        uint32_t size_driver_path_1 = 0;
 
8057
        uint32_t length_driver_path_1 = 0;
7836
8058
        TALLOC_CTX *_mem_save_driver_path_0;
7837
8059
        uint32_t _ptr_data_file;
 
8060
        uint32_t size_data_file_1 = 0;
 
8061
        uint32_t length_data_file_1 = 0;
7838
8062
        TALLOC_CTX *_mem_save_data_file_0;
7839
8063
        uint32_t _ptr_config_file;
 
8064
        uint32_t size_config_file_1 = 0;
 
8065
        uint32_t length_config_file_1 = 0;
7840
8066
        TALLOC_CTX *_mem_save_config_file_0;
7841
8067
        uint32_t _ptr_help_file;
 
8068
        uint32_t size_help_file_1 = 0;
 
8069
        uint32_t length_help_file_1 = 0;
7842
8070
        TALLOC_CTX *_mem_save_help_file_0;
7843
8071
        uint32_t _ptr_monitor_name;
 
8072
        uint32_t size_monitor_name_1 = 0;
 
8073
        uint32_t length_monitor_name_1 = 0;
7844
8074
        TALLOC_CTX *_mem_save_monitor_name_0;
7845
8075
        uint32_t _ptr_default_datatype;
 
8076
        uint32_t size_default_datatype_1 = 0;
 
8077
        uint32_t length_default_datatype_1 = 0;
7846
8078
        TALLOC_CTX *_mem_save_default_datatype_0;
7847
8079
        uint32_t _ptr_dependent_files;
7848
8080
        TALLOC_CTX *_mem_save_dependent_files_0;
7911
8143
                        NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7912
8144
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7913
8145
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7914
 
                        if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7915
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
 
8146
                        size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
 
8147
                        length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
 
8148
                        if (length_driver_name_1 > size_driver_name_1) {
 
8149
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
7916
8150
                        }
7917
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7918
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
 
8151
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
 
8152
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
7919
8153
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7920
8154
                }
7921
8155
                if (r->architecture) {
7923
8157
                        NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7924
8158
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7925
8159
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7926
 
                        if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7927
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
 
8160
                        size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
 
8161
                        length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
 
8162
                        if (length_architecture_1 > size_architecture_1) {
 
8163
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
7928
8164
                        }
7929
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7930
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
 
8165
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
 
8166
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
7931
8167
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7932
8168
                }
7933
8169
                if (r->driver_path) {
7935
8171
                        NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7936
8172
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7937
8173
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7938
 
                        if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7939
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
 
8174
                        size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
 
8175
                        length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
 
8176
                        if (length_driver_path_1 > size_driver_path_1) {
 
8177
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
7940
8178
                        }
7941
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7942
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
 
8179
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
 
8180
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
7943
8181
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7944
8182
                }
7945
8183
                if (r->data_file) {
7947
8185
                        NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7948
8186
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7949
8187
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7950
 
                        if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7951
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
 
8188
                        size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
 
8189
                        length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
 
8190
                        if (length_data_file_1 > size_data_file_1) {
 
8191
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
7952
8192
                        }
7953
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7954
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
 
8193
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
 
8194
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
7955
8195
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7956
8196
                }
7957
8197
                if (r->config_file) {
7959
8199
                        NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7960
8200
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7961
8201
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7962
 
                        if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7963
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
 
8202
                        size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
 
8203
                        length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
 
8204
                        if (length_config_file_1 > size_config_file_1) {
 
8205
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
7964
8206
                        }
7965
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7966
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
 
8207
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
 
8208
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
7967
8209
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7968
8210
                }
7969
8211
                if (r->help_file) {
7971
8213
                        NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7972
8214
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
7973
8215
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
7974
 
                        if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
7975
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
 
8216
                        size_help_file_1 = ndr_get_array_size(ndr, &r->help_file);
 
8217
                        length_help_file_1 = ndr_get_array_length(ndr, &r->help_file);
 
8218
                        if (length_help_file_1 > size_help_file_1) {
 
8219
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_help_file_1, length_help_file_1);
7976
8220
                        }
7977
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
7978
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
 
8221
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
 
8222
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
7979
8223
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7980
8224
                }
7981
8225
                if (r->monitor_name) {
7983
8227
                        NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7984
8228
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
7985
8229
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
7986
 
                        if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
7987
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
 
8230
                        size_monitor_name_1 = ndr_get_array_size(ndr, &r->monitor_name);
 
8231
                        length_monitor_name_1 = ndr_get_array_length(ndr, &r->monitor_name);
 
8232
                        if (length_monitor_name_1 > size_monitor_name_1) {
 
8233
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_1, length_monitor_name_1);
7988
8234
                        }
7989
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
7990
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
 
8235
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
 
8236
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
7991
8237
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7992
8238
                }
7993
8239
                if (r->default_datatype) {
7995
8241
                        NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7996
8242
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
7997
8243
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
7998
 
                        if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
7999
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
 
8244
                        size_default_datatype_1 = ndr_get_array_size(ndr, &r->default_datatype);
 
8245
                        length_default_datatype_1 = ndr_get_array_length(ndr, &r->default_datatype);
 
8246
                        if (length_default_datatype_1 > size_default_datatype_1) {
 
8247
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_default_datatype_1, length_default_datatype_1);
8000
8248
                        }
8001
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8002
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
 
8249
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
 
8250
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
8003
8251
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8004
8252
                }
8005
8253
                if (r->dependent_files) {
8155
8403
static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8156
8404
{
8157
8405
        uint32_t _ptr_driver_name;
 
8406
        uint32_t size_driver_name_1 = 0;
 
8407
        uint32_t length_driver_name_1 = 0;
8158
8408
        TALLOC_CTX *_mem_save_driver_name_0;
8159
8409
        uint32_t _ptr_architecture;
 
8410
        uint32_t size_architecture_1 = 0;
 
8411
        uint32_t length_architecture_1 = 0;
8160
8412
        TALLOC_CTX *_mem_save_architecture_0;
8161
8413
        uint32_t _ptr_driver_path;
 
8414
        uint32_t size_driver_path_1 = 0;
 
8415
        uint32_t length_driver_path_1 = 0;
8162
8416
        TALLOC_CTX *_mem_save_driver_path_0;
8163
8417
        uint32_t _ptr_data_file;
 
8418
        uint32_t size_data_file_1 = 0;
 
8419
        uint32_t length_data_file_1 = 0;
8164
8420
        TALLOC_CTX *_mem_save_data_file_0;
8165
8421
        uint32_t _ptr_config_file;
 
8422
        uint32_t size_config_file_1 = 0;
 
8423
        uint32_t length_config_file_1 = 0;
8166
8424
        TALLOC_CTX *_mem_save_config_file_0;
8167
8425
        uint32_t _ptr_help_file;
 
8426
        uint32_t size_help_file_1 = 0;
 
8427
        uint32_t length_help_file_1 = 0;
8168
8428
        TALLOC_CTX *_mem_save_help_file_0;
8169
8429
        uint32_t _ptr_monitor_name;
 
8430
        uint32_t size_monitor_name_1 = 0;
 
8431
        uint32_t length_monitor_name_1 = 0;
8170
8432
        TALLOC_CTX *_mem_save_monitor_name_0;
8171
8433
        uint32_t _ptr_default_datatype;
 
8434
        uint32_t size_default_datatype_1 = 0;
 
8435
        uint32_t length_default_datatype_1 = 0;
8172
8436
        TALLOC_CTX *_mem_save_default_datatype_0;
8173
8437
        uint32_t _ptr_dependent_files;
8174
8438
        TALLOC_CTX *_mem_save_dependent_files_0;
8246
8510
                        NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8247
8511
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8248
8512
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8249
 
                        if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8250
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
 
8513
                        size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
 
8514
                        length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
 
8515
                        if (length_driver_name_1 > size_driver_name_1) {
 
8516
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
8251
8517
                        }
8252
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8253
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
 
8518
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
 
8519
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
8254
8520
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8255
8521
                }
8256
8522
                if (r->architecture) {
8258
8524
                        NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8259
8525
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8260
8526
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8261
 
                        if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8262
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
 
8527
                        size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
 
8528
                        length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
 
8529
                        if (length_architecture_1 > size_architecture_1) {
 
8530
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
8263
8531
                        }
8264
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8265
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
 
8532
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
 
8533
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
8266
8534
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8267
8535
                }
8268
8536
                if (r->driver_path) {
8270
8538
                        NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8271
8539
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8272
8540
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8273
 
                        if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8274
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
 
8541
                        size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
 
8542
                        length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
 
8543
                        if (length_driver_path_1 > size_driver_path_1) {
 
8544
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
8275
8545
                        }
8276
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8277
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
 
8546
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
 
8547
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
8278
8548
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8279
8549
                }
8280
8550
                if (r->data_file) {
8282
8552
                        NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8283
8553
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8284
8554
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8285
 
                        if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8286
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
 
8555
                        size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
 
8556
                        length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
 
8557
                        if (length_data_file_1 > size_data_file_1) {
 
8558
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
8287
8559
                        }
8288
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8289
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
 
8560
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
 
8561
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
8290
8562
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8291
8563
                }
8292
8564
                if (r->config_file) {
8294
8566
                        NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8295
8567
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8296
8568
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8297
 
                        if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8298
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
 
8569
                        size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
 
8570
                        length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
 
8571
                        if (length_config_file_1 > size_config_file_1) {
 
8572
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
8299
8573
                        }
8300
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8301
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
 
8574
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
 
8575
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
8302
8576
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8303
8577
                }
8304
8578
                if (r->help_file) {
8306
8580
                        NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8307
8581
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8308
8582
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8309
 
                        if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8310
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
 
8583
                        size_help_file_1 = ndr_get_array_size(ndr, &r->help_file);
 
8584
                        length_help_file_1 = ndr_get_array_length(ndr, &r->help_file);
 
8585
                        if (length_help_file_1 > size_help_file_1) {
 
8586
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_help_file_1, length_help_file_1);
8311
8587
                        }
8312
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8313
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
 
8588
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
 
8589
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
8314
8590
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8315
8591
                }
8316
8592
                if (r->monitor_name) {
8318
8594
                        NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8319
8595
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8320
8596
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8321
 
                        if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8322
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
 
8597
                        size_monitor_name_1 = ndr_get_array_size(ndr, &r->monitor_name);
 
8598
                        length_monitor_name_1 = ndr_get_array_length(ndr, &r->monitor_name);
 
8599
                        if (length_monitor_name_1 > size_monitor_name_1) {
 
8600
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_1, length_monitor_name_1);
8323
8601
                        }
8324
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8325
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
 
8602
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
 
8603
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
8326
8604
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8327
8605
                }
8328
8606
                if (r->default_datatype) {
8330
8608
                        NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8331
8609
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8332
8610
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8333
 
                        if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8334
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
 
8611
                        size_default_datatype_1 = ndr_get_array_size(ndr, &r->default_datatype);
 
8612
                        length_default_datatype_1 = ndr_get_array_length(ndr, &r->default_datatype);
 
8613
                        if (length_default_datatype_1 > size_default_datatype_1) {
 
8614
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_default_datatype_1, length_default_datatype_1);
8335
8615
                        }
8336
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8337
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
 
8616
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
 
8617
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
8338
8618
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8339
8619
                }
8340
8620
                if (r->dependent_files) {
8555
8835
static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
8556
8836
{
8557
8837
        uint32_t _ptr_driver_name;
 
8838
        uint32_t size_driver_name_1 = 0;
 
8839
        uint32_t length_driver_name_1 = 0;
8558
8840
        TALLOC_CTX *_mem_save_driver_name_0;
8559
8841
        uint32_t _ptr_architecture;
 
8842
        uint32_t size_architecture_1 = 0;
 
8843
        uint32_t length_architecture_1 = 0;
8560
8844
        TALLOC_CTX *_mem_save_architecture_0;
8561
8845
        uint32_t _ptr_driver_path;
 
8846
        uint32_t size_driver_path_1 = 0;
 
8847
        uint32_t length_driver_path_1 = 0;
8562
8848
        TALLOC_CTX *_mem_save_driver_path_0;
8563
8849
        uint32_t _ptr_data_file;
 
8850
        uint32_t size_data_file_1 = 0;
 
8851
        uint32_t length_data_file_1 = 0;
8564
8852
        TALLOC_CTX *_mem_save_data_file_0;
8565
8853
        uint32_t _ptr_config_file;
 
8854
        uint32_t size_config_file_1 = 0;
 
8855
        uint32_t length_config_file_1 = 0;
8566
8856
        TALLOC_CTX *_mem_save_config_file_0;
8567
8857
        uint32_t _ptr_help_file;
 
8858
        uint32_t size_help_file_1 = 0;
 
8859
        uint32_t length_help_file_1 = 0;
8568
8860
        TALLOC_CTX *_mem_save_help_file_0;
8569
8861
        uint32_t _ptr_monitor_name;
 
8862
        uint32_t size_monitor_name_1 = 0;
 
8863
        uint32_t length_monitor_name_1 = 0;
8570
8864
        TALLOC_CTX *_mem_save_monitor_name_0;
8571
8865
        uint32_t _ptr_default_datatype;
 
8866
        uint32_t size_default_datatype_1 = 0;
 
8867
        uint32_t length_default_datatype_1 = 0;
8572
8868
        TALLOC_CTX *_mem_save_default_datatype_0;
8573
8869
        uint32_t _ptr_dependent_files;
8574
8870
        TALLOC_CTX *_mem_save_dependent_files_0;
8575
8871
        uint32_t _ptr_previous_names;
8576
8872
        TALLOC_CTX *_mem_save_previous_names_0;
8577
8873
        uint32_t _ptr_manufacturer_name;
 
8874
        uint32_t size_manufacturer_name_1 = 0;
 
8875
        uint32_t length_manufacturer_name_1 = 0;
8578
8876
        TALLOC_CTX *_mem_save_manufacturer_name_0;
8579
8877
        uint32_t _ptr_manufacturer_url;
 
8878
        uint32_t size_manufacturer_url_1 = 0;
 
8879
        uint32_t length_manufacturer_url_1 = 0;
8580
8880
        TALLOC_CTX *_mem_save_manufacturer_url_0;
8581
8881
        uint32_t _ptr_hardware_id;
 
8882
        uint32_t size_hardware_id_1 = 0;
 
8883
        uint32_t length_hardware_id_1 = 0;
8582
8884
        TALLOC_CTX *_mem_save_hardware_id_0;
8583
8885
        uint32_t _ptr_provider;
 
8886
        uint32_t size_provider_1 = 0;
 
8887
        uint32_t length_provider_1 = 0;
8584
8888
        TALLOC_CTX *_mem_save_provider_0;
8585
8889
        if (ndr_flags & NDR_SCALARS) {
8586
8890
                NDR_CHECK(ndr_pull_align(ndr, 8));
8680
8984
                        NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8681
8985
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8682
8986
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8683
 
                        if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8684
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
 
8987
                        size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
 
8988
                        length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
 
8989
                        if (length_driver_name_1 > size_driver_name_1) {
 
8990
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
8685
8991
                        }
8686
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8687
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
 
8992
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
 
8993
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
8688
8994
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8689
8995
                }
8690
8996
                if (r->architecture) {
8692
8998
                        NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8693
8999
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8694
9000
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8695
 
                        if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8696
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
 
9001
                        size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
 
9002
                        length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
 
9003
                        if (length_architecture_1 > size_architecture_1) {
 
9004
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
8697
9005
                        }
8698
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8699
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
 
9006
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
 
9007
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
8700
9008
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8701
9009
                }
8702
9010
                if (r->driver_path) {
8704
9012
                        NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8705
9013
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8706
9014
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8707
 
                        if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8708
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
 
9015
                        size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
 
9016
                        length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
 
9017
                        if (length_driver_path_1 > size_driver_path_1) {
 
9018
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
8709
9019
                        }
8710
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8711
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
 
9020
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
 
9021
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
8712
9022
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8713
9023
                }
8714
9024
                if (r->data_file) {
8716
9026
                        NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8717
9027
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8718
9028
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8719
 
                        if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8720
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
 
9029
                        size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
 
9030
                        length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
 
9031
                        if (length_data_file_1 > size_data_file_1) {
 
9032
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
8721
9033
                        }
8722
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8723
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
 
9034
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
 
9035
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
8724
9036
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8725
9037
                }
8726
9038
                if (r->config_file) {
8728
9040
                        NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8729
9041
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8730
9042
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8731
 
                        if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8732
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
 
9043
                        size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
 
9044
                        length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
 
9045
                        if (length_config_file_1 > size_config_file_1) {
 
9046
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
8733
9047
                        }
8734
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8735
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
 
9048
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
 
9049
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
8736
9050
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8737
9051
                }
8738
9052
                if (r->help_file) {
8740
9054
                        NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8741
9055
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8742
9056
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8743
 
                        if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8744
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
 
9057
                        size_help_file_1 = ndr_get_array_size(ndr, &r->help_file);
 
9058
                        length_help_file_1 = ndr_get_array_length(ndr, &r->help_file);
 
9059
                        if (length_help_file_1 > size_help_file_1) {
 
9060
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_help_file_1, length_help_file_1);
8745
9061
                        }
8746
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8747
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
 
9062
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
 
9063
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
8748
9064
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8749
9065
                }
8750
9066
                if (r->monitor_name) {
8752
9068
                        NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8753
9069
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8754
9070
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8755
 
                        if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8756
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
 
9071
                        size_monitor_name_1 = ndr_get_array_size(ndr, &r->monitor_name);
 
9072
                        length_monitor_name_1 = ndr_get_array_length(ndr, &r->monitor_name);
 
9073
                        if (length_monitor_name_1 > size_monitor_name_1) {
 
9074
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_1, length_monitor_name_1);
8757
9075
                        }
8758
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8759
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
 
9076
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
 
9077
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
8760
9078
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8761
9079
                }
8762
9080
                if (r->default_datatype) {
8764
9082
                        NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8765
9083
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8766
9084
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8767
 
                        if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8768
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
 
9085
                        size_default_datatype_1 = ndr_get_array_size(ndr, &r->default_datatype);
 
9086
                        length_default_datatype_1 = ndr_get_array_length(ndr, &r->default_datatype);
 
9087
                        if (length_default_datatype_1 > size_default_datatype_1) {
 
9088
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_default_datatype_1, length_default_datatype_1);
8769
9089
                        }
8770
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8771
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
 
9090
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
 
9091
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
8772
9092
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8773
9093
                }
8774
9094
                if (r->dependent_files) {
8788
9108
                        NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
8789
9109
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
8790
9110
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
8791
 
                        if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
8792
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
 
9111
                        size_manufacturer_name_1 = ndr_get_array_size(ndr, &r->manufacturer_name);
 
9112
                        length_manufacturer_name_1 = ndr_get_array_length(ndr, &r->manufacturer_name);
 
9113
                        if (length_manufacturer_name_1 > size_manufacturer_name_1) {
 
9114
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_manufacturer_name_1, length_manufacturer_name_1);
8793
9115
                        }
8794
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
8795
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
 
9116
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_name_1, sizeof(uint16_t)));
 
9117
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, length_manufacturer_name_1, sizeof(uint16_t), CH_UTF16));
8796
9118
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
8797
9119
                }
8798
9120
                if (r->manufacturer_url) {
8800
9122
                        NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
8801
9123
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
8802
9124
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
8803
 
                        if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
8804
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
 
9125
                        size_manufacturer_url_1 = ndr_get_array_size(ndr, &r->manufacturer_url);
 
9126
                        length_manufacturer_url_1 = ndr_get_array_length(ndr, &r->manufacturer_url);
 
9127
                        if (length_manufacturer_url_1 > size_manufacturer_url_1) {
 
9128
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_manufacturer_url_1, length_manufacturer_url_1);
8805
9129
                        }
8806
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
8807
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
 
9130
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_url_1, sizeof(uint16_t)));
 
9131
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, length_manufacturer_url_1, sizeof(uint16_t), CH_UTF16));
8808
9132
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
8809
9133
                }
8810
9134
                if (r->hardware_id) {
8812
9136
                        NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
8813
9137
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
8814
9138
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
8815
 
                        if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
8816
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
 
9139
                        size_hardware_id_1 = ndr_get_array_size(ndr, &r->hardware_id);
 
9140
                        length_hardware_id_1 = ndr_get_array_length(ndr, &r->hardware_id);
 
9141
                        if (length_hardware_id_1 > size_hardware_id_1) {
 
9142
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_hardware_id_1, length_hardware_id_1);
8817
9143
                        }
8818
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
8819
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
 
9144
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_hardware_id_1, sizeof(uint16_t)));
 
9145
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, length_hardware_id_1, sizeof(uint16_t), CH_UTF16));
8820
9146
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
8821
9147
                }
8822
9148
                if (r->provider) {
8824
9150
                        NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
8825
9151
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
8826
9152
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
8827
 
                        if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
8828
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->provider), ndr_get_array_length(ndr, &r->provider));
 
9153
                        size_provider_1 = ndr_get_array_size(ndr, &r->provider);
 
9154
                        length_provider_1 = ndr_get_array_length(ndr, &r->provider);
 
9155
                        if (length_provider_1 > size_provider_1) {
 
9156
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_provider_1, length_provider_1);
8829
9157
                        }
8830
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
8831
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
 
9158
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_provider_1, sizeof(uint16_t)));
 
9159
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, length_provider_1, sizeof(uint16_t), CH_UTF16));
8832
9160
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
8833
9161
                }
8834
9162
        }
9075
9403
static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9076
9404
{
9077
9405
        uint32_t _ptr_driver_name;
 
9406
        uint32_t size_driver_name_1 = 0;
 
9407
        uint32_t length_driver_name_1 = 0;
9078
9408
        TALLOC_CTX *_mem_save_driver_name_0;
9079
9409
        uint32_t _ptr_architecture;
 
9410
        uint32_t size_architecture_1 = 0;
 
9411
        uint32_t length_architecture_1 = 0;
9080
9412
        TALLOC_CTX *_mem_save_architecture_0;
9081
9413
        uint32_t _ptr_driver_path;
 
9414
        uint32_t size_driver_path_1 = 0;
 
9415
        uint32_t length_driver_path_1 = 0;
9082
9416
        TALLOC_CTX *_mem_save_driver_path_0;
9083
9417
        uint32_t _ptr_data_file;
 
9418
        uint32_t size_data_file_1 = 0;
 
9419
        uint32_t length_data_file_1 = 0;
9084
9420
        TALLOC_CTX *_mem_save_data_file_0;
9085
9421
        uint32_t _ptr_config_file;
 
9422
        uint32_t size_config_file_1 = 0;
 
9423
        uint32_t length_config_file_1 = 0;
9086
9424
        TALLOC_CTX *_mem_save_config_file_0;
9087
9425
        uint32_t _ptr_help_file;
 
9426
        uint32_t size_help_file_1 = 0;
 
9427
        uint32_t length_help_file_1 = 0;
9088
9428
        TALLOC_CTX *_mem_save_help_file_0;
9089
9429
        uint32_t _ptr_monitor_name;
 
9430
        uint32_t size_monitor_name_1 = 0;
 
9431
        uint32_t length_monitor_name_1 = 0;
9090
9432
        TALLOC_CTX *_mem_save_monitor_name_0;
9091
9433
        uint32_t _ptr_default_datatype;
 
9434
        uint32_t size_default_datatype_1 = 0;
 
9435
        uint32_t length_default_datatype_1 = 0;
9092
9436
        TALLOC_CTX *_mem_save_default_datatype_0;
9093
9437
        uint32_t _ptr_dependent_files;
9094
9438
        TALLOC_CTX *_mem_save_dependent_files_0;
9095
9439
        uint32_t _ptr_previous_names;
9096
9440
        TALLOC_CTX *_mem_save_previous_names_0;
9097
9441
        uint32_t _ptr_manufacturer_name;
 
9442
        uint32_t size_manufacturer_name_1 = 0;
 
9443
        uint32_t length_manufacturer_name_1 = 0;
9098
9444
        TALLOC_CTX *_mem_save_manufacturer_name_0;
9099
9445
        uint32_t _ptr_manufacturer_url;
 
9446
        uint32_t size_manufacturer_url_1 = 0;
 
9447
        uint32_t length_manufacturer_url_1 = 0;
9100
9448
        TALLOC_CTX *_mem_save_manufacturer_url_0;
9101
9449
        uint32_t _ptr_hardware_id;
 
9450
        uint32_t size_hardware_id_1 = 0;
 
9451
        uint32_t length_hardware_id_1 = 0;
9102
9452
        TALLOC_CTX *_mem_save_hardware_id_0;
9103
9453
        uint32_t _ptr_provider;
 
9454
        uint32_t size_provider_1 = 0;
 
9455
        uint32_t length_provider_1 = 0;
9104
9456
        TALLOC_CTX *_mem_save_provider_0;
9105
9457
        uint32_t _ptr_print_processor;
 
9458
        uint32_t size_print_processor_1 = 0;
 
9459
        uint32_t length_print_processor_1 = 0;
9106
9460
        TALLOC_CTX *_mem_save_print_processor_0;
9107
9461
        uint32_t _ptr_vendor_setup;
 
9462
        uint32_t size_vendor_setup_1 = 0;
 
9463
        uint32_t length_vendor_setup_1 = 0;
9108
9464
        TALLOC_CTX *_mem_save_vendor_setup_0;
9109
9465
        uint32_t _ptr_color_profiles;
9110
9466
        TALLOC_CTX *_mem_save_color_profiles_0;
9111
9467
        uint32_t _ptr_inf_path;
 
9468
        uint32_t size_inf_path_1 = 0;
 
9469
        uint32_t length_inf_path_1 = 0;
9112
9470
        TALLOC_CTX *_mem_save_inf_path_0;
9113
9471
        uint32_t _ptr_core_driver_dependencies;
9114
9472
        TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9245
9603
                        NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9246
9604
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9247
9605
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9248
 
                        if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9249
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
 
9606
                        size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
 
9607
                        length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
 
9608
                        if (length_driver_name_1 > size_driver_name_1) {
 
9609
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
9250
9610
                        }
9251
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9252
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
 
9611
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
 
9612
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
9253
9613
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9254
9614
                }
9255
9615
                if (r->architecture) {
9257
9617
                        NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9258
9618
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9259
9619
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9260
 
                        if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9261
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
 
9620
                        size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
 
9621
                        length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
 
9622
                        if (length_architecture_1 > size_architecture_1) {
 
9623
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
9262
9624
                        }
9263
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9264
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
 
9625
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
 
9626
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
9265
9627
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9266
9628
                }
9267
9629
                if (r->driver_path) {
9269
9631
                        NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9270
9632
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9271
9633
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9272
 
                        if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9273
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
 
9634
                        size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
 
9635
                        length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
 
9636
                        if (length_driver_path_1 > size_driver_path_1) {
 
9637
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
9274
9638
                        }
9275
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9276
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
 
9639
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
 
9640
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
9277
9641
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9278
9642
                }
9279
9643
                if (r->data_file) {
9281
9645
                        NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9282
9646
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9283
9647
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9284
 
                        if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9285
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
 
9648
                        size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
 
9649
                        length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
 
9650
                        if (length_data_file_1 > size_data_file_1) {
 
9651
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
9286
9652
                        }
9287
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9288
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
 
9653
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
 
9654
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
9289
9655
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9290
9656
                }
9291
9657
                if (r->config_file) {
9293
9659
                        NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9294
9660
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9295
9661
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9296
 
                        if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9297
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
 
9662
                        size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
 
9663
                        length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
 
9664
                        if (length_config_file_1 > size_config_file_1) {
 
9665
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
9298
9666
                        }
9299
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9300
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
 
9667
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
 
9668
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
9301
9669
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9302
9670
                }
9303
9671
                if (r->help_file) {
9305
9673
                        NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9306
9674
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9307
9675
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9308
 
                        if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9309
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
 
9676
                        size_help_file_1 = ndr_get_array_size(ndr, &r->help_file);
 
9677
                        length_help_file_1 = ndr_get_array_length(ndr, &r->help_file);
 
9678
                        if (length_help_file_1 > size_help_file_1) {
 
9679
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_help_file_1, length_help_file_1);
9310
9680
                        }
9311
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9312
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
 
9681
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
 
9682
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
9313
9683
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9314
9684
                }
9315
9685
                if (r->monitor_name) {
9317
9687
                        NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9318
9688
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9319
9689
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9320
 
                        if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9321
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
 
9690
                        size_monitor_name_1 = ndr_get_array_size(ndr, &r->monitor_name);
 
9691
                        length_monitor_name_1 = ndr_get_array_length(ndr, &r->monitor_name);
 
9692
                        if (length_monitor_name_1 > size_monitor_name_1) {
 
9693
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_1, length_monitor_name_1);
9322
9694
                        }
9323
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9324
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
 
9695
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
 
9696
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
9325
9697
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9326
9698
                }
9327
9699
                if (r->default_datatype) {
9329
9701
                        NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9330
9702
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9331
9703
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9332
 
                        if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9333
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
 
9704
                        size_default_datatype_1 = ndr_get_array_size(ndr, &r->default_datatype);
 
9705
                        length_default_datatype_1 = ndr_get_array_length(ndr, &r->default_datatype);
 
9706
                        if (length_default_datatype_1 > size_default_datatype_1) {
 
9707
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_default_datatype_1, length_default_datatype_1);
9334
9708
                        }
9335
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9336
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
 
9709
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
 
9710
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
9337
9711
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9338
9712
                }
9339
9713
                if (r->dependent_files) {
9353
9727
                        NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9354
9728
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9355
9729
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9356
 
                        if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9357
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
 
9730
                        size_manufacturer_name_1 = ndr_get_array_size(ndr, &r->manufacturer_name);
 
9731
                        length_manufacturer_name_1 = ndr_get_array_length(ndr, &r->manufacturer_name);
 
9732
                        if (length_manufacturer_name_1 > size_manufacturer_name_1) {
 
9733
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_manufacturer_name_1, length_manufacturer_name_1);
9358
9734
                        }
9359
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9360
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
 
9735
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_name_1, sizeof(uint16_t)));
 
9736
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, length_manufacturer_name_1, sizeof(uint16_t), CH_UTF16));
9361
9737
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9362
9738
                }
9363
9739
                if (r->manufacturer_url) {
9365
9741
                        NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9366
9742
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9367
9743
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9368
 
                        if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9369
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
 
9744
                        size_manufacturer_url_1 = ndr_get_array_size(ndr, &r->manufacturer_url);
 
9745
                        length_manufacturer_url_1 = ndr_get_array_length(ndr, &r->manufacturer_url);
 
9746
                        if (length_manufacturer_url_1 > size_manufacturer_url_1) {
 
9747
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_manufacturer_url_1, length_manufacturer_url_1);
9370
9748
                        }
9371
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9372
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
 
9749
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_url_1, sizeof(uint16_t)));
 
9750
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, length_manufacturer_url_1, sizeof(uint16_t), CH_UTF16));
9373
9751
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9374
9752
                }
9375
9753
                if (r->hardware_id) {
9377
9755
                        NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9378
9756
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9379
9757
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9380
 
                        if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9381
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
 
9758
                        size_hardware_id_1 = ndr_get_array_size(ndr, &r->hardware_id);
 
9759
                        length_hardware_id_1 = ndr_get_array_length(ndr, &r->hardware_id);
 
9760
                        if (length_hardware_id_1 > size_hardware_id_1) {
 
9761
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_hardware_id_1, length_hardware_id_1);
9382
9762
                        }
9383
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9384
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
 
9763
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_hardware_id_1, sizeof(uint16_t)));
 
9764
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, length_hardware_id_1, sizeof(uint16_t), CH_UTF16));
9385
9765
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9386
9766
                }
9387
9767
                if (r->provider) {
9389
9769
                        NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9390
9770
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9391
9771
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9392
 
                        if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9393
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->provider), ndr_get_array_length(ndr, &r->provider));
 
9772
                        size_provider_1 = ndr_get_array_size(ndr, &r->provider);
 
9773
                        length_provider_1 = ndr_get_array_length(ndr, &r->provider);
 
9774
                        if (length_provider_1 > size_provider_1) {
 
9775
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_provider_1, length_provider_1);
9394
9776
                        }
9395
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9396
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
 
9777
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_provider_1, sizeof(uint16_t)));
 
9778
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, length_provider_1, sizeof(uint16_t), CH_UTF16));
9397
9779
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9398
9780
                }
9399
9781
                if (r->print_processor) {
9401
9783
                        NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
9402
9784
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
9403
9785
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
9404
 
                        if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
9405
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
 
9786
                        size_print_processor_1 = ndr_get_array_size(ndr, &r->print_processor);
 
9787
                        length_print_processor_1 = ndr_get_array_length(ndr, &r->print_processor);
 
9788
                        if (length_print_processor_1 > size_print_processor_1) {
 
9789
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_1, length_print_processor_1);
9406
9790
                        }
9407
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
9408
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
 
9791
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
 
9792
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
9409
9793
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
9410
9794
                }
9411
9795
                if (r->vendor_setup) {
9413
9797
                        NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
9414
9798
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
9415
9799
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
9416
 
                        if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
9417
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->vendor_setup), ndr_get_array_length(ndr, &r->vendor_setup));
 
9800
                        size_vendor_setup_1 = ndr_get_array_size(ndr, &r->vendor_setup);
 
9801
                        length_vendor_setup_1 = ndr_get_array_length(ndr, &r->vendor_setup);
 
9802
                        if (length_vendor_setup_1 > size_vendor_setup_1) {
 
9803
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_vendor_setup_1, length_vendor_setup_1);
9418
9804
                        }
9419
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
9420
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
 
9805
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_vendor_setup_1, sizeof(uint16_t)));
 
9806
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, length_vendor_setup_1, sizeof(uint16_t), CH_UTF16));
9421
9807
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
9422
9808
                }
9423
9809
                if (r->color_profiles) {
9431
9817
                        NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
9432
9818
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
9433
9819
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
9434
 
                        if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
9435
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->inf_path), ndr_get_array_length(ndr, &r->inf_path));
 
9820
                        size_inf_path_1 = ndr_get_array_size(ndr, &r->inf_path);
 
9821
                        length_inf_path_1 = ndr_get_array_length(ndr, &r->inf_path);
 
9822
                        if (length_inf_path_1 > size_inf_path_1) {
 
9823
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_inf_path_1, length_inf_path_1);
9436
9824
                        }
9437
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
9438
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
 
9825
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_inf_path_1, sizeof(uint16_t)));
 
9826
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, length_inf_path_1, sizeof(uint16_t), CH_UTF16));
9439
9827
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
9440
9828
                }
9441
9829
                if (r->core_driver_dependencies) {
9664
10052
        int level;
9665
10053
        uint32_t _level;
9666
10054
        TALLOC_CTX *_mem_save_info1_0;
 
10055
        uint32_t _ptr_info1;
9667
10056
        TALLOC_CTX *_mem_save_info2_0;
 
10057
        uint32_t _ptr_info2;
9668
10058
        TALLOC_CTX *_mem_save_info3_0;
 
10059
        uint32_t _ptr_info3;
9669
10060
        TALLOC_CTX *_mem_save_info4_0;
 
10061
        uint32_t _ptr_info4;
9670
10062
        TALLOC_CTX *_mem_save_info6_0;
 
10063
        uint32_t _ptr_info6;
9671
10064
        TALLOC_CTX *_mem_save_info8_0;
 
10065
        uint32_t _ptr_info8;
9672
10066
        level = ndr_pull_get_switch_value(ndr, r);
9673
10067
        if (ndr_flags & NDR_SCALARS) {
9674
10068
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9677
10071
                }
9678
10072
                switch (level) {
9679
10073
                        case 1: {
9680
 
                                uint32_t _ptr_info1;
9681
10074
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
9682
10075
                                if (_ptr_info1) {
9683
10076
                                        NDR_PULL_ALLOC(ndr, r->info1);
9687
10080
                        break; }
9688
10081
 
9689
10082
                        case 2: {
9690
 
                                uint32_t _ptr_info2;
9691
10083
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
9692
10084
                                if (_ptr_info2) {
9693
10085
                                        NDR_PULL_ALLOC(ndr, r->info2);
9697
10089
                        break; }
9698
10090
 
9699
10091
                        case 3: {
9700
 
                                uint32_t _ptr_info3;
9701
10092
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
9702
10093
                                if (_ptr_info3) {
9703
10094
                                        NDR_PULL_ALLOC(ndr, r->info3);
9707
10098
                        break; }
9708
10099
 
9709
10100
                        case 4: {
9710
 
                                uint32_t _ptr_info4;
9711
10101
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
9712
10102
                                if (_ptr_info4) {
9713
10103
                                        NDR_PULL_ALLOC(ndr, r->info4);
9717
10107
                        break; }
9718
10108
 
9719
10109
                        case 6: {
9720
 
                                uint32_t _ptr_info6;
9721
10110
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
9722
10111
                                if (_ptr_info6) {
9723
10112
                                        NDR_PULL_ALLOC(ndr, r->info6);
9727
10116
                        break; }
9728
10117
 
9729
10118
                        case 8: {
9730
 
                                uint32_t _ptr_info8;
9731
10119
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
9732
10120
                                if (_ptr_info8) {
9733
10121
                                        NDR_PULL_ALLOC(ndr, r->info8);
14388
14776
static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
14389
14777
{
14390
14778
        uint32_t _ptr_document_name;
 
14779
        uint32_t size_document_name_1 = 0;
 
14780
        uint32_t length_document_name_1 = 0;
14391
14781
        TALLOC_CTX *_mem_save_document_name_0;
14392
14782
        uint32_t _ptr_output_file;
 
14783
        uint32_t size_output_file_1 = 0;
 
14784
        uint32_t length_output_file_1 = 0;
14393
14785
        TALLOC_CTX *_mem_save_output_file_0;
14394
14786
        uint32_t _ptr_datatype;
 
14787
        uint32_t size_datatype_1 = 0;
 
14788
        uint32_t length_datatype_1 = 0;
14395
14789
        TALLOC_CTX *_mem_save_datatype_0;
14396
14790
        if (ndr_flags & NDR_SCALARS) {
14397
14791
                NDR_CHECK(ndr_pull_align(ndr, 4));
14420
14814
                        NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
14421
14815
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
14422
14816
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
14423
 
                        if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
14424
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
 
14817
                        size_document_name_1 = ndr_get_array_size(ndr, &r->document_name);
 
14818
                        length_document_name_1 = ndr_get_array_length(ndr, &r->document_name);
 
14819
                        if (length_document_name_1 > size_document_name_1) {
 
14820
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_document_name_1, length_document_name_1);
14425
14821
                        }
14426
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
14427
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
 
14822
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
 
14823
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
14428
14824
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
14429
14825
                }
14430
14826
                if (r->output_file) {
14432
14828
                        NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
14433
14829
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
14434
14830
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
14435
 
                        if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
14436
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->output_file), ndr_get_array_length(ndr, &r->output_file));
 
14831
                        size_output_file_1 = ndr_get_array_size(ndr, &r->output_file);
 
14832
                        length_output_file_1 = ndr_get_array_length(ndr, &r->output_file);
 
14833
                        if (length_output_file_1 > size_output_file_1) {
 
14834
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_output_file_1, length_output_file_1);
14437
14835
                        }
14438
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
14439
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
 
14836
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_output_file_1, sizeof(uint16_t)));
 
14837
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, length_output_file_1, sizeof(uint16_t), CH_UTF16));
14440
14838
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
14441
14839
                }
14442
14840
                if (r->datatype) {
14444
14842
                        NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
14445
14843
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
14446
14844
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
14447
 
                        if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
14448
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->datatype), ndr_get_array_length(ndr, &r->datatype));
 
14845
                        size_datatype_1 = ndr_get_array_size(ndr, &r->datatype);
 
14846
                        length_datatype_1 = ndr_get_array_length(ndr, &r->datatype);
 
14847
                        if (length_datatype_1 > size_datatype_1) {
 
14848
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_datatype_1, length_datatype_1);
14449
14849
                        }
14450
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
14451
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
 
14850
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
 
14851
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
14452
14852
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14453
14853
                }
14454
14854
        }
14529
14929
        int level;
14530
14930
        uint32_t _level;
14531
14931
        TALLOC_CTX *_mem_save_info1_0;
 
14932
        uint32_t _ptr_info1;
14532
14933
        level = ndr_pull_get_switch_value(ndr, r);
14533
14934
        if (ndr_flags & NDR_SCALARS) {
14534
14935
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14537
14938
                }
14538
14939
                switch (level) {
14539
14940
                        case 1: {
14540
 
                                uint32_t _ptr_info1;
14541
14941
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
14542
14942
                                if (_ptr_info1) {
14543
14943
                                        NDR_PULL_ALLOC(ndr, r->info1);
15564
15964
static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
15565
15965
{
15566
15966
        uint32_t _ptr_form_name;
 
15967
        uint32_t size_form_name_1 = 0;
 
15968
        uint32_t length_form_name_1 = 0;
15567
15969
        TALLOC_CTX *_mem_save_form_name_0;
15568
15970
        if (ndr_flags & NDR_SCALARS) {
15569
15971
                NDR_CHECK(ndr_pull_align(ndr, 4));
15583
15985
                        NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15584
15986
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15585
15987
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15586
 
                        if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15587
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->form_name), ndr_get_array_length(ndr, &r->form_name));
 
15988
                        size_form_name_1 = ndr_get_array_size(ndr, &r->form_name);
 
15989
                        length_form_name_1 = ndr_get_array_length(ndr, &r->form_name);
 
15990
                        if (length_form_name_1 > size_form_name_1) {
 
15991
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_1, length_form_name_1);
15588
15992
                        }
15589
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15590
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
 
15993
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_1, sizeof(uint16_t)));
 
15994
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, length_form_name_1, sizeof(uint16_t), CH_UTF16));
15591
15995
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15592
15996
                }
15593
15997
        }
15657
16061
static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
15658
16062
{
15659
16063
        uint32_t _ptr_form_name;
 
16064
        uint32_t size_form_name_1 = 0;
 
16065
        uint32_t length_form_name_1 = 0;
15660
16066
        TALLOC_CTX *_mem_save_form_name_0;
15661
16067
        uint32_t _ptr_keyword;
 
16068
        uint32_t size_keyword_1 = 0;
 
16069
        uint32_t length_keyword_1 = 0;
15662
16070
        TALLOC_CTX *_mem_save_keyword_0;
15663
16071
        uint32_t _ptr_mui_dll;
 
16072
        uint32_t size_mui_dll_1 = 0;
 
16073
        uint32_t length_mui_dll_1 = 0;
15664
16074
        TALLOC_CTX *_mem_save_mui_dll_0;
15665
16075
        uint32_t _ptr_display_name;
 
16076
        uint32_t size_display_name_1 = 0;
 
16077
        uint32_t length_display_name_1 = 0;
15666
16078
        TALLOC_CTX *_mem_save_display_name_0;
15667
16079
        if (ndr_flags & NDR_SCALARS) {
15668
16080
                NDR_CHECK(ndr_pull_align(ndr, 4));
15703
16115
                        NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15704
16116
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15705
16117
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15706
 
                        if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15707
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->form_name), ndr_get_array_length(ndr, &r->form_name));
 
16118
                        size_form_name_1 = ndr_get_array_size(ndr, &r->form_name);
 
16119
                        length_form_name_1 = ndr_get_array_length(ndr, &r->form_name);
 
16120
                        if (length_form_name_1 > size_form_name_1) {
 
16121
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_1, length_form_name_1);
15708
16122
                        }
15709
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15710
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
 
16123
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_1, sizeof(uint16_t)));
 
16124
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, length_form_name_1, sizeof(uint16_t), CH_UTF16));
15711
16125
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15712
16126
                }
15713
16127
                if (r->keyword) {
15715
16129
                        NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15716
16130
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
15717
16131
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
15718
 
                        if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
15719
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->keyword), ndr_get_array_length(ndr, &r->keyword));
 
16132
                        size_keyword_1 = ndr_get_array_size(ndr, &r->keyword);
 
16133
                        length_keyword_1 = ndr_get_array_length(ndr, &r->keyword);
 
16134
                        if (length_keyword_1 > size_keyword_1) {
 
16135
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_keyword_1, length_keyword_1);
15720
16136
                        }
15721
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
15722
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
 
16137
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_keyword_1, sizeof(uint8_t)));
 
16138
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, length_keyword_1, sizeof(uint8_t), CH_DOS));
15723
16139
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15724
16140
                }
15725
16141
                if (r->mui_dll) {
15727
16143
                        NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15728
16144
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
15729
16145
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
15730
 
                        if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
15731
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->mui_dll), ndr_get_array_length(ndr, &r->mui_dll));
 
16146
                        size_mui_dll_1 = ndr_get_array_size(ndr, &r->mui_dll);
 
16147
                        length_mui_dll_1 = ndr_get_array_length(ndr, &r->mui_dll);
 
16148
                        if (length_mui_dll_1 > size_mui_dll_1) {
 
16149
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_mui_dll_1, length_mui_dll_1);
15732
16150
                        }
15733
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
15734
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
 
16151
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_mui_dll_1, sizeof(uint16_t)));
 
16152
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, length_mui_dll_1, sizeof(uint16_t), CH_UTF16));
15735
16153
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15736
16154
                }
15737
16155
                if (r->display_name) {
15739
16157
                        NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15740
16158
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
15741
16159
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
15742
 
                        if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
15743
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->display_name), ndr_get_array_length(ndr, &r->display_name));
 
16160
                        size_display_name_1 = ndr_get_array_size(ndr, &r->display_name);
 
16161
                        length_display_name_1 = ndr_get_array_length(ndr, &r->display_name);
 
16162
                        if (length_display_name_1 > size_display_name_1) {
 
16163
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_display_name_1, length_display_name_1);
15744
16164
                        }
15745
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
15746
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
 
16165
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_display_name_1, sizeof(uint16_t)));
 
16166
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, length_display_name_1, sizeof(uint16_t), CH_UTF16));
15747
16167
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15748
16168
                }
15749
16169
        }
15832
16252
        int level;
15833
16253
        uint32_t _level;
15834
16254
        TALLOC_CTX *_mem_save_info1_0;
 
16255
        uint32_t _ptr_info1;
15835
16256
        TALLOC_CTX *_mem_save_info2_0;
 
16257
        uint32_t _ptr_info2;
15836
16258
        level = ndr_pull_get_switch_value(ndr, r);
15837
16259
        if (ndr_flags & NDR_SCALARS) {
15838
16260
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15841
16263
                }
15842
16264
                switch (level) {
15843
16265
                        case 1: {
15844
 
                                uint32_t _ptr_info1;
15845
16266
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15846
16267
                                if (_ptr_info1) {
15847
16268
                                        NDR_PULL_ALLOC(ndr, r->info1);
15851
16272
                        break; }
15852
16273
 
15853
16274
                        case 2: {
15854
 
                                uint32_t _ptr_info2;
15855
16275
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
15856
16276
                                if (_ptr_info2) {
15857
16277
                                        NDR_PULL_ALLOC(ndr, r->info2);
17464
17884
static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
17465
17885
{
17466
17886
        uint32_t _ptr_fields;
 
17887
        uint32_t size_fields_1 = 0;
17467
17888
        uint32_t cntr_fields_1;
17468
17889
        TALLOC_CTX *_mem_save_fields_0;
17469
17890
        TALLOC_CTX *_mem_save_fields_1;
17486
17907
                        _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
17487
17908
                        NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17488
17909
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
17489
 
                        NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
 
17910
                        size_fields_1 = ndr_get_array_size(ndr, &r->fields);
 
17911
                        NDR_PULL_ALLOC_N(ndr, r->fields, size_fields_1);
17490
17912
                        _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
17491
17913
                        NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17492
 
                        for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
 
17914
                        for (cntr_fields_1 = 0; cntr_fields_1 < size_fields_1; cntr_fields_1++) {
17493
17915
                                NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17494
17916
                                NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17495
17917
                        }
17581
18003
static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
17582
18004
{
17583
18005
        uint32_t _ptr_types;
 
18006
        uint32_t size_types_1 = 0;
17584
18007
        uint32_t cntr_types_1;
17585
18008
        TALLOC_CTX *_mem_save_types_0;
17586
18009
        TALLOC_CTX *_mem_save_types_1;
17601
18024
                        _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
17602
18025
                        NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17603
18026
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
17604
 
                        NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
 
18027
                        size_types_1 = ndr_get_array_size(ndr, &r->types);
 
18028
                        NDR_PULL_ALLOC_N(ndr, r->types, size_types_1);
17605
18029
                        _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
17606
18030
                        NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17607
 
                        for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
 
18031
                        for (cntr_types_1 = 0; cntr_types_1 < size_types_1; cntr_types_1++) {
17608
18032
                                NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17609
18033
                        }
17610
 
                        for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
 
18034
                        for (cntr_types_1 = 0; cntr_types_1 < size_types_1; cntr_types_1++) {
17611
18035
                                NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17612
18036
                        }
17613
18037
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
17665
18089
static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
17666
18090
{
17667
18091
        uint32_t _ptr_string;
 
18092
        uint32_t size_string_1 = 0;
17668
18093
        TALLOC_CTX *_mem_save_string_0;
17669
18094
        if (ndr_flags & NDR_SCALARS) {
17670
18095
                NDR_CHECK(ndr_pull_align(ndr, 4));
17681
18106
                        _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17682
18107
                        NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
17683
18108
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
17684
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
 
18109
                        size_string_1 = ndr_get_array_size(ndr, &r->string);
 
18110
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, size_string_1, sizeof(uint16_t), CH_UTF16));
17685
18111
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
17686
18112
                }
17687
18113
                if (r->string) {
17799
18225
{
17800
18226
        int level;
17801
18227
        uint32_t _level;
 
18228
        uint32_t size_integer_0 = 0;
 
18229
        uint32_t cntr_integer_0;
17802
18230
        level = ndr_pull_get_switch_value(ndr, r);
17803
18231
        if (ndr_flags & NDR_SCALARS) {
17804
18232
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17807
18235
                }
17808
18236
                switch (level) {
17809
18237
                        case 1: {
17810
 
                                uint32_t cntr_integer_0;
17811
 
                                for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
 
18238
                                size_integer_0 = 2;
 
18239
                                for (cntr_integer_0 = 0; cntr_integer_0 < size_integer_0; cntr_integer_0++) {
17812
18240
                                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
17813
18241
                                }
17814
18242
                        break; }
17975
18403
 
17976
18404
static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
17977
18405
{
 
18406
        uint32_t size_notifies_0 = 0;
17978
18407
        uint32_t cntr_notifies_0;
17979
18408
        TALLOC_CTX *_mem_save_notifies_0;
17980
18409
        if (ndr_flags & NDR_SCALARS) {
17983
18412
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17984
18413
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17985
18414
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17986
 
                NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
 
18415
                size_notifies_0 = ndr_get_array_size(ndr, &r->notifies);
 
18416
                NDR_PULL_ALLOC_N(ndr, r->notifies, size_notifies_0);
17987
18417
                _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17988
18418
                NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17989
 
                for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
 
18419
                for (cntr_notifies_0 = 0; cntr_notifies_0 < size_notifies_0; cntr_notifies_0++) {
17990
18420
                        NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17991
18421
                }
17992
18422
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17995
18425
                }
17996
18426
        }
17997
18427
        if (ndr_flags & NDR_BUFFERS) {
 
18428
                size_notifies_0 = ndr_get_array_size(ndr, &r->notifies);
17998
18429
                _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17999
18430
                NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18000
 
                for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
 
18431
                for (cntr_notifies_0 = 0; cntr_notifies_0 < size_notifies_0; cntr_notifies_0++) {
18001
18432
                        NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18002
18433
                }
18003
18434
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18061
18492
        int level;
18062
18493
        uint32_t _level;
18063
18494
        TALLOC_CTX *_mem_save_info0_0;
 
18495
        uint32_t _ptr_info0;
18064
18496
        level = ndr_pull_get_switch_value(ndr, r);
18065
18497
        if (ndr_flags & NDR_SCALARS) {
18066
18498
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18069
18501
                }
18070
18502
                switch (level) {
18071
18503
                        case 0: {
18072
 
                                uint32_t _ptr_info0;
18073
18504
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
18074
18505
                                if (_ptr_info0) {
18075
18506
                                        NDR_PULL_ALLOC(ndr, r->info0);
18176
18607
static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
18177
18608
{
18178
18609
        uint32_t _ptr_client;
 
18610
        uint32_t size_client_1 = 0;
 
18611
        uint32_t length_client_1 = 0;
18179
18612
        TALLOC_CTX *_mem_save_client_0;
18180
18613
        uint32_t _ptr_user;
 
18614
        uint32_t size_user_1 = 0;
 
18615
        uint32_t length_user_1 = 0;
18181
18616
        TALLOC_CTX *_mem_save_user_0;
18182
18617
        if (ndr_flags & NDR_SCALARS) {
18183
18618
                NDR_CHECK(ndr_pull_align(ndr, 4));
18205
18640
                        NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18206
18641
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18207
18642
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18208
 
                        if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18209
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client), ndr_get_array_length(ndr, &r->client));
 
18643
                        size_client_1 = ndr_get_array_size(ndr, &r->client);
 
18644
                        length_client_1 = ndr_get_array_length(ndr, &r->client);
 
18645
                        if (length_client_1 > size_client_1) {
 
18646
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_1, length_client_1);
18210
18647
                        }
18211
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18212
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
 
18648
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t)));
 
18649
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16));
18213
18650
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18214
18651
                }
18215
18652
                if (r->user) {
18217
18654
                        NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18218
18655
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18219
18656
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18220
 
                        if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18221
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user));
 
18657
                        size_user_1 = ndr_get_array_size(ndr, &r->user);
 
18658
                        length_user_1 = ndr_get_array_length(ndr, &r->user);
 
18659
                        if (length_user_1 > size_user_1) {
 
18660
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1);
18222
18661
                        }
18223
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18224
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
 
18662
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t)));
 
18663
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16));
18225
18664
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18226
18665
                }
18227
18666
        }
18317
18756
static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
18318
18757
{
18319
18758
        uint32_t _ptr_client;
 
18759
        uint32_t size_client_1 = 0;
 
18760
        uint32_t length_client_1 = 0;
18320
18761
        TALLOC_CTX *_mem_save_client_0;
18321
18762
        uint32_t _ptr_user;
 
18763
        uint32_t size_user_1 = 0;
 
18764
        uint32_t length_user_1 = 0;
18322
18765
        TALLOC_CTX *_mem_save_user_0;
18323
18766
        if (ndr_flags & NDR_SCALARS) {
18324
18767
                NDR_CHECK(ndr_pull_align(ndr, 4));
18349
18792
                        NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18350
18793
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18351
18794
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18352
 
                        if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18353
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client), ndr_get_array_length(ndr, &r->client));
 
18795
                        size_client_1 = ndr_get_array_size(ndr, &r->client);
 
18796
                        length_client_1 = ndr_get_array_length(ndr, &r->client);
 
18797
                        if (length_client_1 > size_client_1) {
 
18798
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_1, length_client_1);
18354
18799
                        }
18355
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18356
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
 
18800
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t)));
 
18801
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16));
18357
18802
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18358
18803
                }
18359
18804
                if (r->user) {
18361
18806
                        NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18362
18807
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18363
18808
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18364
 
                        if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18365
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user));
 
18809
                        size_user_1 = ndr_get_array_size(ndr, &r->user);
 
18810
                        length_user_1 = ndr_get_array_length(ndr, &r->user);
 
18811
                        if (length_user_1 > size_user_1) {
 
18812
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1);
18366
18813
                        }
18367
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18368
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
 
18814
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t)));
 
18815
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16));
18369
18816
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18370
18817
                }
18371
18818
        }
18454
18901
        int level;
18455
18902
        uint32_t _level;
18456
18903
        TALLOC_CTX *_mem_save_level1_0;
 
18904
        uint32_t _ptr_level1;
18457
18905
        TALLOC_CTX *_mem_save_level2_0;
 
18906
        uint32_t _ptr_level2;
18458
18907
        TALLOC_CTX *_mem_save_level3_0;
 
18908
        uint32_t _ptr_level3;
18459
18909
        level = ndr_pull_get_switch_value(ndr, r);
18460
18910
        if (ndr_flags & NDR_SCALARS) {
18461
18911
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18464
18914
                }
18465
18915
                switch (level) {
18466
18916
                        case 1: {
18467
 
                                uint32_t _ptr_level1;
18468
18917
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
18469
18918
                                if (_ptr_level1) {
18470
18919
                                        NDR_PULL_ALLOC(ndr, r->level1);
18474
18923
                        break; }
18475
18924
 
18476
18925
                        case 2: {
18477
 
                                uint32_t _ptr_level2;
18478
18926
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
18479
18927
                                if (_ptr_level2) {
18480
18928
                                        NDR_PULL_ALLOC(ndr, r->level2);
18484
18932
                        break; }
18485
18933
 
18486
18934
                        case 3: {
18487
 
                                uint32_t _ptr_level3;
18488
18935
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
18489
18936
                                if (_ptr_level3) {
18490
18937
                                        NDR_PULL_ALLOC(ndr, r->level3);
18953
19400
 
18954
19401
_PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
18955
19402
{
 
19403
        uint32_t size_portname_0 = 0;
 
19404
        uint32_t size_hostaddress_0 = 0;
 
19405
        uint32_t size_snmpcommunity_0 = 0;
 
19406
        uint32_t size_queue_0 = 0;
 
19407
        uint32_t size_ip_address_0 = 0;
 
19408
        uint32_t size_hardware_address_0 = 0;
 
19409
        uint32_t size_device_type_0 = 0;
18956
19410
        if (ndr_flags & NDR_SCALARS) {
18957
19411
                NDR_CHECK(ndr_pull_align(ndr, 4));
18958
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
 
19412
                size_portname_0 = 64;
 
19413
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, size_portname_0, sizeof(uint16_t), CH_UTF16));
18959
19414
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18960
19415
                NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18961
19416
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18962
19417
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18963
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18964
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
 
19418
                size_hostaddress_0 = 49;
 
19419
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, size_hostaddress_0, sizeof(uint16_t), CH_UTF16));
 
19420
                size_snmpcommunity_0 = 33;
 
19421
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, size_snmpcommunity_0, sizeof(uint16_t), CH_UTF16));
18965
19422
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18966
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18967
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18968
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18969
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
 
19423
                size_queue_0 = 33;
 
19424
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, size_queue_0, sizeof(uint16_t), CH_UTF16));
 
19425
                size_ip_address_0 = 16;
 
19426
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, size_ip_address_0, sizeof(uint16_t), CH_UTF16));
 
19427
                size_hardware_address_0 = 13;
 
19428
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, size_hardware_address_0, sizeof(uint16_t), CH_UTF16));
 
19429
                size_device_type_0 = 257;
 
19430
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, size_device_type_0, sizeof(uint16_t), CH_UTF16));
18970
19431
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18971
19432
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18972
19433
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19024
19485
 
19025
19486
_PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
19026
19487
{
 
19488
        uint32_t size_portname_0 = 0;
 
19489
        uint32_t size_hostaddress_0 = 0;
 
19490
        uint32_t size_snmpcommunity_0 = 0;
 
19491
        uint32_t size_queue_0 = 0;
 
19492
        uint32_t size_device_type_0 = 0;
19027
19493
        if (ndr_flags & NDR_SCALARS) {
19028
19494
                NDR_CHECK(ndr_pull_align(ndr, 4));
19029
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
 
19495
                size_portname_0 = 64;
 
19496
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, size_portname_0, sizeof(uint16_t), CH_UTF16));
19030
19497
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19031
19498
                NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19032
19499
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19033
19500
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19034
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19035
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
 
19501
                size_hostaddress_0 = 128;
 
19502
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, size_hostaddress_0, sizeof(uint16_t), CH_UTF16));
 
19503
                size_snmpcommunity_0 = 33;
 
19504
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, size_snmpcommunity_0, sizeof(uint16_t), CH_UTF16));
19036
19505
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19037
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19038
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
 
19506
                size_queue_0 = 33;
 
19507
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, size_queue_0, sizeof(uint16_t), CH_UTF16));
 
19508
                size_device_type_0 = 257;
 
19509
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, size_device_type_0, sizeof(uint16_t), CH_UTF16));
19039
19510
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19040
19511
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19041
19512
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19175
19646
_PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
19176
19647
{
19177
19648
        uint32_t _ptr_server;
 
19649
        uint32_t size_server_1 = 0;
 
19650
        uint32_t length_server_1 = 0;
19178
19651
        uint32_t _ptr_buffer;
19179
19652
        uint32_t _ptr_info;
19180
19653
        TALLOC_CTX *_mem_save_server_0;
19197
19670
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19198
19671
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19199
19672
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19200
 
                        if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19201
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
 
19673
                        size_server_1 = ndr_get_array_size(ndr, &r->in.server);
 
19674
                        length_server_1 = ndr_get_array_length(ndr, &r->in.server);
 
19675
                        if (length_server_1 > size_server_1) {
 
19676
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
19202
19677
                        }
19203
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19204
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
 
19678
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
 
19679
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
19205
19680
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19206
19681
                }
19207
19682
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19276
19751
 
19277
19752
_PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
19278
19753
{
 
19754
        uint32_t size_info_0 = 0;
19279
19755
        uint32_t cntr_info_0;
19280
19756
        TALLOC_CTX *_mem_save_info_0;
19281
19757
        if (flags & NDR_IN) {
19285
19761
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19286
19762
        }
19287
19763
        if (flags & NDR_OUT) {
19288
 
                NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
 
19764
                size_info_0 = r->in.count;
 
19765
                NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
19289
19766
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19290
19767
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19291
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
19768
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
19292
19769
                        NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19293
19770
                        NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19294
19771
                }
19295
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
19772
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
19296
19773
                        NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19297
19774
                }
19298
19775
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19397
19874
_PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
19398
19875
{
19399
19876
        uint32_t _ptr_printername;
 
19877
        uint32_t size_printername_1 = 0;
 
19878
        uint32_t length_printername_1 = 0;
19400
19879
        uint32_t _ptr_datatype;
 
19880
        uint32_t size_datatype_1 = 0;
 
19881
        uint32_t length_datatype_1 = 0;
19401
19882
        TALLOC_CTX *_mem_save_printername_0;
19402
19883
        TALLOC_CTX *_mem_save_datatype_0;
19403
19884
        TALLOC_CTX *_mem_save_handle_0;
19415
19896
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
19416
19897
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
19417
19898
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
19418
 
                        if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
19419
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.printername), ndr_get_array_length(ndr, &r->in.printername));
 
19899
                        size_printername_1 = ndr_get_array_size(ndr, &r->in.printername);
 
19900
                        length_printername_1 = ndr_get_array_length(ndr, &r->in.printername);
 
19901
                        if (length_printername_1 > size_printername_1) {
 
19902
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
19420
19903
                        }
19421
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
19422
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
 
19904
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
 
19905
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
19423
19906
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
19424
19907
                }
19425
19908
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
19433
19916
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
19434
19917
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
19435
19918
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
19436
 
                        if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
19437
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.datatype), ndr_get_array_length(ndr, &r->in.datatype));
 
19919
                        size_datatype_1 = ndr_get_array_size(ndr, &r->in.datatype);
 
19920
                        length_datatype_1 = ndr_get_array_length(ndr, &r->in.datatype);
 
19921
                        if (length_datatype_1 > size_datatype_1) {
 
19922
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_datatype_1, length_datatype_1);
19438
19923
                        }
19439
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
19440
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
 
19924
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
 
19925
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
19441
19926
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
19442
19927
                }
19443
19928
                NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19858
20343
 
19859
20344
_PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
19860
20345
{
 
20346
        uint32_t size_info_0 = 0;
19861
20347
        uint32_t cntr_info_0;
19862
20348
        TALLOC_CTX *_mem_save_info_0;
19863
20349
        if (flags & NDR_IN) {
19867
20353
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19868
20354
        }
19869
20355
        if (flags & NDR_OUT) {
19870
 
                NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
 
20356
                size_info_0 = r->in.count;
 
20357
                NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
19871
20358
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19872
20359
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19873
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
20360
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
19874
20361
                        NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19875
20362
                        NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19876
20363
                }
19877
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
20364
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
19878
20365
                        NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19879
20366
                }
19880
20367
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20319
20806
static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
20320
20807
{
20321
20808
        uint32_t _ptr_servername;
 
20809
        uint32_t size_servername_1 = 0;
 
20810
        uint32_t length_servername_1 = 0;
20322
20811
        TALLOC_CTX *_mem_save_servername_0;
20323
20812
        TALLOC_CTX *_mem_save_info_ctr_0;
20324
20813
        if (flags & NDR_IN) {
20333
20822
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20334
20823
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20335
20824
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20336
 
                        if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20337
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
 
20825
                        size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
 
20826
                        length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
 
20827
                        if (length_servername_1 > size_servername_1) {
 
20828
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
20338
20829
                        }
20339
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20340
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
 
20830
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
 
20831
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
20341
20832
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20342
20833
                }
20343
20834
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20430
20921
_PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
20431
20922
{
20432
20923
        uint32_t _ptr_server;
 
20924
        uint32_t size_server_1 = 0;
 
20925
        uint32_t length_server_1 = 0;
20433
20926
        uint32_t _ptr_environment;
 
20927
        uint32_t size_environment_1 = 0;
 
20928
        uint32_t length_environment_1 = 0;
20434
20929
        uint32_t _ptr_buffer;
20435
20930
        uint32_t _ptr_info;
20436
20931
        TALLOC_CTX *_mem_save_server_0;
20453
20948
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20454
20949
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20455
20950
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20456
 
                        if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20457
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
 
20951
                        size_server_1 = ndr_get_array_size(ndr, &r->in.server);
 
20952
                        length_server_1 = ndr_get_array_length(ndr, &r->in.server);
 
20953
                        if (length_server_1 > size_server_1) {
 
20954
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
20458
20955
                        }
20459
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20460
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
 
20956
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
 
20957
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
20461
20958
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20462
20959
                }
20463
20960
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20471
20968
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20472
20969
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20473
20970
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20474
 
                        if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20475
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
 
20971
                        size_environment_1 = ndr_get_array_size(ndr, &r->in.environment);
 
20972
                        length_environment_1 = ndr_get_array_length(ndr, &r->in.environment);
 
20973
                        if (length_environment_1 > size_environment_1) {
 
20974
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_environment_1, length_environment_1);
20476
20975
                        }
20477
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20478
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
 
20976
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
 
20977
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
20479
20978
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20480
20979
                }
20481
20980
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20550
21049
 
20551
21050
_PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
20552
21051
{
 
21052
        uint32_t size_info_0 = 0;
20553
21053
        uint32_t cntr_info_0;
20554
21054
        TALLOC_CTX *_mem_save_info_0;
20555
21055
        if (flags & NDR_IN) {
20559
21059
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20560
21060
        }
20561
21061
        if (flags & NDR_OUT) {
20562
 
                NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
 
21062
                size_info_0 = r->in.count;
 
21063
                NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
20563
21064
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20564
21065
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20565
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
21066
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
20566
21067
                        NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20567
21068
                        NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20568
21069
                }
20569
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
21070
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
20570
21071
                        NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20571
21072
                }
20572
21073
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20731
21232
_PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
20732
21233
{
20733
21234
        uint32_t _ptr_server;
 
21235
        uint32_t size_server_1 = 0;
 
21236
        uint32_t length_server_1 = 0;
20734
21237
        uint32_t _ptr_environment;
 
21238
        uint32_t size_environment_1 = 0;
 
21239
        uint32_t length_environment_1 = 0;
20735
21240
        uint32_t _ptr_buffer;
20736
21241
        uint32_t _ptr_info;
20737
21242
        TALLOC_CTX *_mem_save_server_0;
20753
21258
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20754
21259
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20755
21260
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20756
 
                        if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20757
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
 
21261
                        size_server_1 = ndr_get_array_size(ndr, &r->in.server);
 
21262
                        length_server_1 = ndr_get_array_length(ndr, &r->in.server);
 
21263
                        if (length_server_1 > size_server_1) {
 
21264
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
20758
21265
                        }
20759
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20760
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
 
21266
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
 
21267
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
20761
21268
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20762
21269
                }
20763
21270
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20771
21278
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20772
21279
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20773
21280
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20774
 
                        if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20775
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
 
21281
                        size_environment_1 = ndr_get_array_size(ndr, &r->in.environment);
 
21282
                        length_environment_1 = ndr_get_array_length(ndr, &r->in.environment);
 
21283
                        if (length_environment_1 > size_environment_1) {
 
21284
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_environment_1, length_environment_1);
20776
21285
                        }
20777
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20778
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
 
21286
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
 
21287
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
20779
21288
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20780
21289
                }
20781
21290
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20906
21415
static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
20907
21416
{
20908
21417
        uint32_t _ptr_server;
 
21418
        uint32_t size_server_1 = 0;
 
21419
        uint32_t length_server_1 = 0;
 
21420
        uint32_t size_architecture_0 = 0;
 
21421
        uint32_t length_architecture_0 = 0;
 
21422
        uint32_t size_driver_0 = 0;
 
21423
        uint32_t length_driver_0 = 0;
20909
21424
        TALLOC_CTX *_mem_save_server_0;
20910
21425
        if (flags & NDR_IN) {
20911
21426
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20919
21434
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20920
21435
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20921
21436
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20922
 
                        if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20923
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
 
21437
                        size_server_1 = ndr_get_array_size(ndr, &r->in.server);
 
21438
                        length_server_1 = ndr_get_array_length(ndr, &r->in.server);
 
21439
                        if (length_server_1 > size_server_1) {
 
21440
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
20924
21441
                        }
20925
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20926
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
 
21442
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
 
21443
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
20927
21444
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20928
21445
                }
20929
21446
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20930
21447
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20931
 
                if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20932
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
 
21448
                size_architecture_0 = ndr_get_array_size(ndr, &r->in.architecture);
 
21449
                length_architecture_0 = ndr_get_array_length(ndr, &r->in.architecture);
 
21450
                if (length_architecture_0 > size_architecture_0) {
 
21451
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_0, length_architecture_0);
20933
21452
                }
20934
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20935
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
 
21453
                NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
 
21454
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
20936
21455
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
20937
21456
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
20938
 
                if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
20939
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.driver), ndr_get_array_length(ndr, &r->in.driver));
 
21457
                size_driver_0 = ndr_get_array_size(ndr, &r->in.driver);
 
21458
                length_driver_0 = ndr_get_array_length(ndr, &r->in.driver);
 
21459
                if (length_driver_0 > size_driver_0) {
 
21460
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_0, length_driver_0);
20940
21461
                }
20941
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
20942
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
 
21462
                NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_0, sizeof(uint16_t)));
 
21463
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, length_driver_0, sizeof(uint16_t), CH_UTF16));
20943
21464
        }
20944
21465
        if (flags & NDR_OUT) {
20945
21466
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21008
21529
static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
21009
21530
{
21010
21531
        uint32_t _ptr_server;
 
21532
        uint32_t size_server_1 = 0;
 
21533
        uint32_t length_server_1 = 0;
 
21534
        uint32_t size_architecture_0 = 0;
 
21535
        uint32_t length_architecture_0 = 0;
 
21536
        uint32_t size_path_name_0 = 0;
 
21537
        uint32_t length_path_name_0 = 0;
 
21538
        uint32_t size_print_processor_name_0 = 0;
 
21539
        uint32_t length_print_processor_name_0 = 0;
21011
21540
        TALLOC_CTX *_mem_save_server_0;
21012
21541
        if (flags & NDR_IN) {
21013
21542
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21021
21550
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21022
21551
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21023
21552
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21024
 
                        if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21025
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
 
21553
                        size_server_1 = ndr_get_array_size(ndr, &r->in.server);
 
21554
                        length_server_1 = ndr_get_array_length(ndr, &r->in.server);
 
21555
                        if (length_server_1 > size_server_1) {
 
21556
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
21026
21557
                        }
21027
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21028
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
 
21558
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
 
21559
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
21029
21560
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21030
21561
                }
21031
21562
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21032
21563
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21033
 
                if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21034
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
 
21564
                size_architecture_0 = ndr_get_array_size(ndr, &r->in.architecture);
 
21565
                length_architecture_0 = ndr_get_array_length(ndr, &r->in.architecture);
 
21566
                if (length_architecture_0 > size_architecture_0) {
 
21567
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_0, length_architecture_0);
21035
21568
                }
21036
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21037
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
 
21569
                NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
 
21570
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
21038
21571
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
21039
21572
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
21040
 
                if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
21041
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.path_name), ndr_get_array_length(ndr, &r->in.path_name));
 
21573
                size_path_name_0 = ndr_get_array_size(ndr, &r->in.path_name);
 
21574
                length_path_name_0 = ndr_get_array_length(ndr, &r->in.path_name);
 
21575
                if (length_path_name_0 > size_path_name_0) {
 
21576
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_name_0, length_path_name_0);
21042
21577
                }
21043
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
21044
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path_name, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t), CH_UTF16));
 
21578
                NDR_CHECK(ndr_check_string_terminator(ndr, length_path_name_0, sizeof(uint16_t)));
 
21579
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path_name, length_path_name_0, sizeof(uint16_t), CH_UTF16));
21045
21580
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
21046
21581
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
21047
 
                if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
21048
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.print_processor_name), ndr_get_array_length(ndr, &r->in.print_processor_name));
 
21582
                size_print_processor_name_0 = ndr_get_array_size(ndr, &r->in.print_processor_name);
 
21583
                length_print_processor_name_0 = ndr_get_array_length(ndr, &r->in.print_processor_name);
 
21584
                if (length_print_processor_name_0 > size_print_processor_name_0) {
 
21585
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_name_0, length_print_processor_name_0);
21049
21586
                }
21050
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
21051
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t), CH_UTF16));
 
21587
                NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_name_0, sizeof(uint16_t)));
 
21588
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, length_print_processor_name_0, sizeof(uint16_t), CH_UTF16));
21052
21589
        }
21053
21590
        if (flags & NDR_OUT) {
21054
21591
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21131
21668
_PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
21132
21669
{
21133
21670
        uint32_t _ptr_servername;
 
21671
        uint32_t size_servername_1 = 0;
 
21672
        uint32_t length_servername_1 = 0;
21134
21673
        uint32_t _ptr_environment;
 
21674
        uint32_t size_environment_1 = 0;
 
21675
        uint32_t length_environment_1 = 0;
21135
21676
        uint32_t _ptr_buffer;
21136
21677
        uint32_t _ptr_info;
21137
21678
        TALLOC_CTX *_mem_save_servername_0;
21154
21695
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21155
21696
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21156
21697
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21157
 
                        if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21158
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
 
21698
                        size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
 
21699
                        length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
 
21700
                        if (length_servername_1 > size_servername_1) {
 
21701
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
21159
21702
                        }
21160
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21161
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
 
21703
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
 
21704
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
21162
21705
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21163
21706
                }
21164
21707
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21172
21715
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21173
21716
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21174
21717
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21175
 
                        if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21176
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
 
21718
                        size_environment_1 = ndr_get_array_size(ndr, &r->in.environment);
 
21719
                        length_environment_1 = ndr_get_array_length(ndr, &r->in.environment);
 
21720
                        if (length_environment_1 > size_environment_1) {
 
21721
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_environment_1, length_environment_1);
21177
21722
                        }
21178
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21179
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
 
21723
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
 
21724
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
21180
21725
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21181
21726
                }
21182
21727
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21251
21796
 
21252
21797
_PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
21253
21798
{
 
21799
        uint32_t size_info_0 = 0;
21254
21800
        uint32_t cntr_info_0;
21255
21801
        TALLOC_CTX *_mem_save_info_0;
21256
21802
        if (flags & NDR_IN) {
21260
21806
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21261
21807
        }
21262
21808
        if (flags & NDR_OUT) {
21263
 
                NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
 
21809
                size_info_0 = r->in.count;
 
21810
                NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
21264
21811
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21265
21812
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21266
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
21813
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
21267
21814
                        NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21268
21815
                        NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21269
21816
                }
21270
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
21817
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
21271
21818
                        NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21272
21819
                }
21273
21820
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21391
21938
static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
21392
21939
{
21393
21940
        uint32_t _ptr_server;
 
21941
        uint32_t size_server_1 = 0;
 
21942
        uint32_t length_server_1 = 0;
21394
21943
        uint32_t _ptr_environment;
 
21944
        uint32_t size_environment_1 = 0;
 
21945
        uint32_t length_environment_1 = 0;
21395
21946
        uint32_t _ptr_buffer;
21396
21947
        uint32_t _ptr_info;
21397
21948
        TALLOC_CTX *_mem_save_server_0;
21413
21964
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21414
21965
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21415
21966
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21416
 
                        if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21417
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
 
21967
                        size_server_1 = ndr_get_array_size(ndr, &r->in.server);
 
21968
                        length_server_1 = ndr_get_array_length(ndr, &r->in.server);
 
21969
                        if (length_server_1 > size_server_1) {
 
21970
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
21418
21971
                        }
21419
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21420
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
 
21972
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
 
21973
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
21421
21974
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21422
21975
                }
21423
21976
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21431
21984
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21432
21985
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21433
21986
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21434
 
                        if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21435
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
 
21987
                        size_environment_1 = ndr_get_array_size(ndr, &r->in.environment);
 
21988
                        length_environment_1 = ndr_get_array_length(ndr, &r->in.environment);
 
21989
                        if (length_environment_1 > size_environment_1) {
 
21990
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_environment_1, length_environment_1);
21436
21991
                        }
21437
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21438
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
 
21992
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
 
21993
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
21439
21994
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21440
21995
                }
21441
21996
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21904
22459
 
21905
22460
static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
21906
22461
{
 
22462
        uint32_t size_data_1 = 0;
21907
22463
        TALLOC_CTX *_mem_save_handle_0;
21908
22464
        TALLOC_CTX *_mem_save__data_size_0;
21909
22465
        if (flags & NDR_IN) {
21924
22480
        }
21925
22481
        if (flags & NDR_OUT) {
21926
22482
                NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
 
22483
                size_data_1 = ndr_get_array_size(ndr, &r->out.data);
21927
22484
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21928
 
                        NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
 
22485
                        NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
21929
22486
                }
21930
 
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
 
22487
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
21931
22488
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21932
22489
                        NDR_PULL_ALLOC(ndr, r->out._data_size);
21933
22490
                }
22067
22624
static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
22068
22625
{
22069
22626
        uint32_t _ptr_buffer;
 
22627
        uint32_t size_buffer_1 = 0;
22070
22628
        TALLOC_CTX *_mem_save_handle_0;
22071
22629
        TALLOC_CTX *_mem_save_buffer_0;
22072
22630
        TALLOC_CTX *_mem_save_needed_0;
22091
22649
                        _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22092
22650
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22093
22651
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
22094
 
                        NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
22095
 
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
 
22652
                        size_buffer_1 = ndr_get_array_size(ndr, &r->in.buffer);
 
22653
                        NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
 
22654
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
22096
22655
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22097
22656
                }
22098
22657
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22113
22672
                        _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22114
22673
                        NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
22115
22674
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
22116
 
                        NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
22117
 
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
 
22675
                        size_buffer_1 = ndr_get_array_size(ndr, &r->out.buffer);
 
22676
                        NDR_PULL_ALLOC_N(ndr, r->out.buffer, size_buffer_1);
 
22677
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, size_buffer_1));
22118
22678
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22119
22679
                }
22120
22680
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22268
22828
 
22269
22829
_PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
22270
22830
{
 
22831
        uint32_t size_value_name_0 = 0;
 
22832
        uint32_t length_value_name_0 = 0;
22271
22833
        TALLOC_CTX *_mem_save_handle_0;
22272
22834
        TALLOC_CTX *_mem_save_type_0;
22273
22835
        TALLOC_CTX *_mem_save_data_0;
22284
22846
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22285
22847
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22286
22848
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22287
 
                if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22288
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
 
22849
                size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
 
22850
                length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
 
22851
                if (length_value_name_0 > size_value_name_0) {
 
22852
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
22289
22853
                }
22290
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22291
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
 
22854
                NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
 
22855
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
22292
22856
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22293
22857
                NDR_PULL_ALLOC(ndr, r->out.type);
22294
22858
                ZERO_STRUCTP(r->out.type);
22440
23004
 
22441
23005
static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
22442
23006
{
 
23007
        uint32_t size_value_name_0 = 0;
 
23008
        uint32_t length_value_name_0 = 0;
22443
23009
        TALLOC_CTX *_mem_save_handle_0;
22444
23010
        if (flags & NDR_IN) {
22445
23011
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22451
23017
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22452
23018
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22453
23019
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22454
 
                if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22455
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
 
23020
                size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
 
23021
                length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
 
23022
                if (length_value_name_0 > size_value_name_0) {
 
23023
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
22456
23024
                }
22457
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22458
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
 
23025
                NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
 
23026
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
22459
23027
                NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
22460
23028
                {
22461
23029
                        struct ndr_pull *_ndr_data;
22705
23273
 
22706
23274
static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
22707
23275
{
 
23276
        uint32_t size_form_name_0 = 0;
 
23277
        uint32_t length_form_name_0 = 0;
22708
23278
        TALLOC_CTX *_mem_save_handle_0;
22709
23279
        if (flags & NDR_IN) {
22710
23280
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22716
23286
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22717
23287
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22718
23288
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22719
 
                if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22720
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.form_name), ndr_get_array_length(ndr, &r->in.form_name));
 
23289
                size_form_name_0 = ndr_get_array_size(ndr, &r->in.form_name);
 
23290
                length_form_name_0 = ndr_get_array_length(ndr, &r->in.form_name);
 
23291
                if (length_form_name_0 > size_form_name_0) {
 
23292
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_0, length_form_name_0);
22721
23293
                }
22722
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22723
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
 
23294
                NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
 
23295
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
22724
23296
        }
22725
23297
        if (flags & NDR_OUT) {
22726
23298
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22794
23366
 
22795
23367
static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
22796
23368
{
 
23369
        uint32_t size_form_name_0 = 0;
 
23370
        uint32_t length_form_name_0 = 0;
22797
23371
        uint32_t _ptr_buffer;
22798
23372
        uint32_t _ptr_info;
22799
23373
        TALLOC_CTX *_mem_save_handle_0;
22812
23386
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22813
23387
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22814
23388
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22815
 
                if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22816
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.form_name), ndr_get_array_length(ndr, &r->in.form_name));
 
23389
                size_form_name_0 = ndr_get_array_size(ndr, &r->in.form_name);
 
23390
                length_form_name_0 = ndr_get_array_length(ndr, &r->in.form_name);
 
23391
                if (length_form_name_0 > size_form_name_0) {
 
23392
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_0, length_form_name_0);
22817
23393
                }
22818
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22819
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
 
23394
                NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
 
23395
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
22820
23396
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22821
23397
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22822
23398
                if (_ptr_buffer) {
22933
23509
 
22934
23510
static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
22935
23511
{
 
23512
        uint32_t size_form_name_0 = 0;
 
23513
        uint32_t length_form_name_0 = 0;
22936
23514
        TALLOC_CTX *_mem_save_handle_0;
22937
23515
        if (flags & NDR_IN) {
22938
23516
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22944
23522
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22945
23523
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22946
23524
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22947
 
                if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22948
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.form_name), ndr_get_array_length(ndr, &r->in.form_name));
 
23525
                size_form_name_0 = ndr_get_array_size(ndr, &r->in.form_name);
 
23526
                length_form_name_0 = ndr_get_array_length(ndr, &r->in.form_name);
 
23527
                if (length_form_name_0 > size_form_name_0) {
 
23528
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_0, length_form_name_0);
22949
23529
                }
22950
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22951
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
 
23530
                NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
 
23531
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
22952
23532
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22953
23533
                NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22954
23534
                NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23111
23691
 
23112
23692
_PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
23113
23693
{
 
23694
        uint32_t size_info_0 = 0;
23114
23695
        uint32_t cntr_info_0;
23115
23696
        TALLOC_CTX *_mem_save_info_0;
23116
23697
        if (flags & NDR_IN) {
23120
23701
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23121
23702
        }
23122
23703
        if (flags & NDR_OUT) {
23123
 
                NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
 
23704
                size_info_0 = r->in.count;
 
23705
                NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
23124
23706
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23125
23707
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23126
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
23708
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
23127
23709
                        NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23128
23710
                        NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23129
23711
                }
23130
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
23712
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
23131
23713
                        NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23132
23714
                }
23133
23715
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23234
23816
_PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
23235
23817
{
23236
23818
        uint32_t _ptr_servername;
 
23819
        uint32_t size_servername_1 = 0;
 
23820
        uint32_t length_servername_1 = 0;
23237
23821
        uint32_t _ptr_buffer;
23238
23822
        uint32_t _ptr_info;
23239
23823
        TALLOC_CTX *_mem_save_servername_0;
23255
23839
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23256
23840
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23257
23841
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23258
 
                        if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23259
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
 
23842
                        size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
 
23843
                        length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
 
23844
                        if (length_servername_1 > size_servername_1) {
 
23845
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
23260
23846
                        }
23261
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23262
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
 
23847
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
 
23848
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
23263
23849
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23264
23850
                }
23265
23851
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23334
23920
 
23335
23921
_PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
23336
23922
{
 
23923
        uint32_t size_info_0 = 0;
23337
23924
        uint32_t cntr_info_0;
23338
23925
        TALLOC_CTX *_mem_save_info_0;
23339
23926
        if (flags & NDR_IN) {
23343
23930
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23344
23931
        }
23345
23932
        if (flags & NDR_OUT) {
23346
 
                NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
 
23933
                size_info_0 = r->in.count;
 
23934
                NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
23347
23935
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23348
23936
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23349
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
23937
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
23350
23938
                        NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23351
23939
                        NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23352
23940
                }
23353
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
23941
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
23354
23942
                        NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23355
23943
                }
23356
23944
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23459
24047
_PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
23460
24048
{
23461
24049
        uint32_t _ptr_servername;
 
24050
        uint32_t size_servername_1 = 0;
 
24051
        uint32_t length_servername_1 = 0;
23462
24052
        uint32_t _ptr_buffer;
23463
24053
        uint32_t _ptr_info;
23464
24054
        TALLOC_CTX *_mem_save_servername_0;
23480
24070
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23481
24071
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23482
24072
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23483
 
                        if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23484
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
 
24073
                        size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
 
24074
                        length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
 
24075
                        if (length_servername_1 > size_servername_1) {
 
24076
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
23485
24077
                        }
23486
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23487
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
 
24078
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
 
24079
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
23488
24080
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23489
24081
                }
23490
24082
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23559
24151
 
23560
24152
_PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
23561
24153
{
 
24154
        uint32_t size_info_0 = 0;
23562
24155
        uint32_t cntr_info_0;
23563
24156
        TALLOC_CTX *_mem_save_info_0;
23564
24157
        if (flags & NDR_IN) {
23568
24161
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23569
24162
        }
23570
24163
        if (flags & NDR_OUT) {
23571
 
                NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
 
24164
                size_info_0 = r->in.count;
 
24165
                NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
23572
24166
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23573
24167
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23574
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
24168
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
23575
24169
                        NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23576
24170
                        NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23577
24171
                }
23578
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
24172
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
23579
24173
                        NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23580
24174
                }
23581
24175
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23671
24265
static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
23672
24266
{
23673
24267
        uint32_t _ptr_server_name;
 
24268
        uint32_t size_server_name_1 = 0;
 
24269
        uint32_t length_server_name_1 = 0;
 
24270
        uint32_t size_monitor_name_0 = 0;
 
24271
        uint32_t length_monitor_name_0 = 0;
23674
24272
        TALLOC_CTX *_mem_save_server_name_0;
23675
24273
        if (flags & NDR_IN) {
23676
24274
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
23684
24282
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
23685
24283
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
23686
24284
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
23687
 
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
23688
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
 
24285
                        size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name);
 
24286
                        length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name);
 
24287
                        if (length_server_name_1 > size_server_name_1) {
 
24288
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1);
23689
24289
                        }
23690
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
23691
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
 
24290
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
 
24291
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
23692
24292
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
23693
24293
                }
23694
24294
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
23695
24295
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
23696
24296
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
23697
 
                if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
23698
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.monitor_name), ndr_get_array_length(ndr, &r->in.monitor_name));
 
24297
                size_monitor_name_0 = ndr_get_array_size(ndr, &r->in.monitor_name);
 
24298
                length_monitor_name_0 = ndr_get_array_length(ndr, &r->in.monitor_name);
 
24299
                if (length_monitor_name_0 > size_monitor_name_0) {
 
24300
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_0, length_monitor_name_0);
23699
24301
                }
23700
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
23701
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.monitor_name, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t), CH_UTF16));
 
24302
                NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_0, sizeof(uint16_t)));
 
24303
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.monitor_name, length_monitor_name_0, sizeof(uint16_t), CH_UTF16));
23702
24304
        }
23703
24305
        if (flags & NDR_OUT) {
23704
24306
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24313
24915
_PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
24314
24916
{
24315
24917
        uint32_t _ptr_servername;
 
24918
        uint32_t size_servername_1 = 0;
 
24919
        uint32_t length_servername_1 = 0;
24316
24920
        uint32_t _ptr_print_processor_name;
 
24921
        uint32_t size_print_processor_name_1 = 0;
 
24922
        uint32_t length_print_processor_name_1 = 0;
24317
24923
        uint32_t _ptr_buffer;
24318
24924
        uint32_t _ptr_info;
24319
24925
        TALLOC_CTX *_mem_save_servername_0;
24336
24942
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24337
24943
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24338
24944
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24339
 
                        if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24340
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
 
24945
                        size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
 
24946
                        length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
 
24947
                        if (length_servername_1 > size_servername_1) {
 
24948
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
24341
24949
                        }
24342
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24343
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
 
24950
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
 
24951
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
24344
24952
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24345
24953
                }
24346
24954
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
24354
24962
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
24355
24963
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
24356
24964
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
24357
 
                        if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
24358
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.print_processor_name), ndr_get_array_length(ndr, &r->in.print_processor_name));
 
24965
                        size_print_processor_name_1 = ndr_get_array_size(ndr, &r->in.print_processor_name);
 
24966
                        length_print_processor_name_1 = ndr_get_array_length(ndr, &r->in.print_processor_name);
 
24967
                        if (length_print_processor_name_1 > size_print_processor_name_1) {
 
24968
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_name_1, length_print_processor_name_1);
24359
24969
                        }
24360
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
24361
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t), CH_UTF16));
 
24970
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_name_1, sizeof(uint16_t)));
 
24971
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, length_print_processor_name_1, sizeof(uint16_t), CH_UTF16));
24362
24972
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
24363
24973
                }
24364
24974
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24433
25043
 
24434
25044
_PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
24435
25045
{
 
25046
        uint32_t size_info_0 = 0;
24436
25047
        uint32_t cntr_info_0;
24437
25048
        TALLOC_CTX *_mem_save_info_0;
24438
25049
        if (flags & NDR_IN) {
24442
25053
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24443
25054
        }
24444
25055
        if (flags & NDR_OUT) {
24445
 
                NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
 
25056
                size_info_0 = r->in.count;
 
25057
                NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
24446
25058
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24447
25059
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24448
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
25060
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
24449
25061
                        NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24450
25062
                        NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24451
25063
                }
24452
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
25064
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
24453
25065
                        NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24454
25066
                }
24455
25067
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24554
25166
static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
24555
25167
{
24556
25168
        uint32_t _ptr_data_type;
 
25169
        uint32_t size_data_type_1 = 0;
 
25170
        uint32_t length_data_type_1 = 0;
24557
25171
        TALLOC_CTX *_mem_save_handle_0;
24558
25172
        TALLOC_CTX *_mem_save_data_type_0;
24559
25173
        TALLOC_CTX *_mem_save_devmode_ctr_0;
24576
25190
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
24577
25191
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
24578
25192
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
24579
 
                        if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
24580
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.data_type), ndr_get_array_length(ndr, &r->in.data_type));
 
25193
                        size_data_type_1 = ndr_get_array_size(ndr, &r->in.data_type);
 
25194
                        length_data_type_1 = ndr_get_array_length(ndr, &r->in.data_type);
 
25195
                        if (length_data_type_1 > size_data_type_1) {
 
25196
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_type_1, length_data_type_1);
24581
25197
                        }
24582
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
24583
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.data_type, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t), CH_UTF16));
 
25198
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
 
25199
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
24584
25200
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
24585
25201
                }
24586
25202
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24686
25302
static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
24687
25303
{
24688
25304
        uint32_t _ptr_architecture;
 
25305
        uint32_t size_architecture_1 = 0;
 
25306
        uint32_t length_architecture_1 = 0;
24689
25307
        uint32_t _ptr_buffer;
24690
25308
        uint32_t _ptr_info;
24691
25309
        TALLOC_CTX *_mem_save_handle_0;
24716
25334
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
24717
25335
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
24718
25336
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
24719
 
                        if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
24720
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
 
25337
                        size_architecture_1 = ndr_get_array_size(ndr, &r->in.architecture);
 
25338
                        length_architecture_1 = ndr_get_array_length(ndr, &r->in.architecture);
 
25339
                        if (length_architecture_1 > size_architecture_1) {
 
25340
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
24721
25341
                        }
24722
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
24723
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
 
25342
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
 
25343
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
24724
25344
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
24725
25345
                }
24726
25346
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25059
25679
 
25060
25680
_PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
25061
25681
{
 
25682
        uint32_t size_server_name_0 = 0;
 
25683
        uint32_t length_server_name_0 = 0;
25062
25684
        uint32_t _ptr_buffer;
 
25685
        uint32_t size_buffer_1 = 0;
25063
25686
        TALLOC_CTX *_mem_save_buffer_0;
25064
25687
        TALLOC_CTX *_mem_save_handle_0;
25065
25688
        if (flags & NDR_IN) {
25067
25690
 
25068
25691
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
25069
25692
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
25070
 
                if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
25071
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
 
25693
                size_server_name_0 = ndr_get_array_size(ndr, &r->in.server_name);
 
25694
                length_server_name_0 = ndr_get_array_length(ndr, &r->in.server_name);
 
25695
                if (length_server_name_0 > size_server_name_0) {
 
25696
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_0, length_server_name_0);
25072
25697
                }
25073
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
25074
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
 
25698
                NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_0, sizeof(uint16_t)));
 
25699
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_0, sizeof(uint16_t), CH_UTF16));
25075
25700
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
25076
25701
                NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
25077
25702
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
25088
25713
                        _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25089
25714
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25090
25715
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25091
 
                        NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25092
 
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
 
25716
                        size_buffer_1 = ndr_get_array_size(ndr, &r->in.buffer);
 
25717
                        NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
 
25718
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
25093
25719
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25094
25720
                }
25095
25721
                NDR_PULL_ALLOC(ndr, r->out.handle);
25170
25796
static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
25171
25797
{
25172
25798
        uint32_t _ptr_buffer;
 
25799
        uint32_t size_buffer_1 = 0;
25173
25800
        TALLOC_CTX *_mem_save_handle_0;
25174
25801
        TALLOC_CTX *_mem_save_buffer_0;
25175
25802
        if (flags & NDR_IN) {
25195
25822
                        _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25196
25823
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25197
25824
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25198
 
                        NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25199
 
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
 
25825
                        size_buffer_1 = ndr_get_array_size(ndr, &r->in.buffer);
 
25826
                        NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
 
25827
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
25200
25828
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25201
25829
                }
25202
25830
                if (r->in.buffer) {
25513
26141
_PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
25514
26142
{
25515
26143
        uint32_t _ptr_local_machine;
 
26144
        uint32_t size_local_machine_1 = 0;
 
26145
        uint32_t length_local_machine_1 = 0;
25516
26146
        uint32_t _ptr_notify_options;
25517
26147
        TALLOC_CTX *_mem_save_handle_0;
25518
26148
        TALLOC_CTX *_mem_save_local_machine_0;
25538
26168
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
25539
26169
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
25540
26170
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
25541
 
                        if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
25542
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.local_machine), ndr_get_array_length(ndr, &r->in.local_machine));
 
26171
                        size_local_machine_1 = ndr_get_array_size(ndr, &r->in.local_machine);
 
26172
                        length_local_machine_1 = ndr_get_array_length(ndr, &r->in.local_machine);
 
26173
                        if (length_local_machine_1 > size_local_machine_1) {
 
26174
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_local_machine_1, length_local_machine_1);
25543
26175
                        }
25544
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
25545
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.local_machine, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t), CH_UTF16));
 
26176
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_local_machine_1, sizeof(uint16_t)));
 
26177
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.local_machine, length_local_machine_1, sizeof(uint16_t), CH_UTF16));
25546
26178
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
25547
26179
                }
25548
26180
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
25899
26531
_PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
25900
26532
{
25901
26533
        uint32_t _ptr_printername;
 
26534
        uint32_t size_printername_1 = 0;
 
26535
        uint32_t length_printername_1 = 0;
25902
26536
        uint32_t _ptr_datatype;
 
26537
        uint32_t size_datatype_1 = 0;
 
26538
        uint32_t length_datatype_1 = 0;
25903
26539
        TALLOC_CTX *_mem_save_printername_0;
25904
26540
        TALLOC_CTX *_mem_save_datatype_0;
25905
26541
        TALLOC_CTX *_mem_save_handle_0;
25917
26553
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
25918
26554
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
25919
26555
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
25920
 
                        if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
25921
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.printername), ndr_get_array_length(ndr, &r->in.printername));
 
26556
                        size_printername_1 = ndr_get_array_size(ndr, &r->in.printername);
 
26557
                        length_printername_1 = ndr_get_array_length(ndr, &r->in.printername);
 
26558
                        if (length_printername_1 > size_printername_1) {
 
26559
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
25922
26560
                        }
25923
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
25924
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
 
26561
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
 
26562
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
25925
26563
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
25926
26564
                }
25927
26565
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
25935
26573
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
25936
26574
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
25937
26575
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
25938
 
                        if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
25939
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.datatype), ndr_get_array_length(ndr, &r->in.datatype));
 
26576
                        size_datatype_1 = ndr_get_array_size(ndr, &r->in.datatype);
 
26577
                        length_datatype_1 = ndr_get_array_length(ndr, &r->in.datatype);
 
26578
                        if (length_datatype_1 > size_datatype_1) {
 
26579
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_datatype_1, length_datatype_1);
25940
26580
                        }
25941
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
25942
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
 
26581
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
 
26582
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
25943
26583
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
25944
26584
                }
25945
26585
                NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26045
26685
static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
26046
26686
{
26047
26687
        uint32_t _ptr_server;
 
26688
        uint32_t size_server_1 = 0;
 
26689
        uint32_t length_server_1 = 0;
26048
26690
        TALLOC_CTX *_mem_save_server_0;
26049
26691
        TALLOC_CTX *_mem_save_info_ctr_0;
26050
26692
        TALLOC_CTX *_mem_save_devmode_ctr_0;
26065
26707
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26066
26708
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26067
26709
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26068
 
                        if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
26069
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
 
26710
                        size_server_1 = ndr_get_array_size(ndr, &r->in.server);
 
26711
                        length_server_1 = ndr_get_array_length(ndr, &r->in.server);
 
26712
                        if (length_server_1 > size_server_1) {
 
26713
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
26070
26714
                        }
26071
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
26072
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
 
26715
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
 
26716
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
26073
26717
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26074
26718
                }
26075
26719
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26247
26891
 
26248
26892
static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
26249
26893
{
 
26894
        uint32_t size_value_name_0 = 0;
 
26895
        uint32_t size_data_1 = 0;
26250
26896
        TALLOC_CTX *_mem_save_handle_0;
26251
26897
        TALLOC_CTX *_mem_save_value_needed_0;
26252
26898
        TALLOC_CTX *_mem_save_type_0;
26275
26921
        }
26276
26922
        if (flags & NDR_OUT) {
26277
26923
                NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
26278
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.value_name, ndr_get_array_size(ndr, &r->out.value_name), sizeof(uint16_t), CH_UTF16));
 
26924
                size_value_name_0 = ndr_get_array_size(ndr, &r->out.value_name);
 
26925
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.value_name, size_value_name_0, sizeof(uint16_t), CH_UTF16));
26279
26926
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26280
26927
                        NDR_PULL_ALLOC(ndr, r->out.value_needed);
26281
26928
                }
26294
26941
                        uint32_t _flags_save_uint8 = ndr->flags;
26295
26942
                        ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
26296
26943
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
 
26944
                        size_data_1 = ndr_get_array_size(ndr, &r->out.data);
26297
26945
                        if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26298
 
                                NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
 
26946
                                NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
26299
26947
                        }
26300
 
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
 
26948
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
26301
26949
                        ndr->flags = _flags_save_uint8;
26302
26950
                }
26303
26951
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26383
27031
 
26384
27032
static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
26385
27033
{
 
27034
        uint32_t size_value_name_0 = 0;
 
27035
        uint32_t length_value_name_0 = 0;
26386
27036
        TALLOC_CTX *_mem_save_handle_0;
26387
27037
        if (flags & NDR_IN) {
26388
27038
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26394
27044
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26395
27045
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26396
27046
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26397
 
                if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26398
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
 
27047
                size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
 
27048
                length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
 
27049
                if (length_value_name_0 > size_value_name_0) {
 
27050
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
26399
27051
                }
26400
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26401
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
 
27052
                NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
 
27053
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
26402
27054
        }
26403
27055
        if (flags & NDR_OUT) {
26404
27056
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26586
27238
 
26587
27239
static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
26588
27240
{
 
27241
        uint32_t size_key_name_0 = 0;
 
27242
        uint32_t length_key_name_0 = 0;
 
27243
        uint32_t size_value_name_0 = 0;
 
27244
        uint32_t length_value_name_0 = 0;
 
27245
        uint32_t size_buffer_1 = 0;
26589
27246
        TALLOC_CTX *_mem_save_handle_0;
26590
27247
        if (flags & NDR_IN) {
26591
27248
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26597
27254
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26598
27255
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26599
27256
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26600
 
                if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26601
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
 
27257
                size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
 
27258
                length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
 
27259
                if (length_key_name_0 > size_key_name_0) {
 
27260
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
26602
27261
                }
26603
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26604
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
 
27262
                NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
 
27263
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
26605
27264
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26606
27265
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26607
 
                if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26608
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
 
27266
                size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
 
27267
                length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
 
27268
                if (length_value_name_0 > size_value_name_0) {
 
27269
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
26609
27270
                }
26610
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26611
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
 
27271
                NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
 
27272
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
26612
27273
                NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26613
27274
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
 
27275
                size_buffer_1 = ndr_get_array_size(ndr, &r->in.buffer);
26614
27276
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26615
 
                        NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
 
27277
                        NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
26616
27278
                }
26617
 
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
 
27279
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
26618
27280
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26619
27281
                if (r->in.buffer) {
26620
27282
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
26697
27359
 
26698
27360
static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
26699
27361
{
 
27362
        uint32_t size_key_name_0 = 0;
 
27363
        uint32_t length_key_name_0 = 0;
 
27364
        uint32_t size_value_name_0 = 0;
 
27365
        uint32_t length_value_name_0 = 0;
 
27366
        uint32_t size_buffer_1 = 0;
26700
27367
        TALLOC_CTX *_mem_save_handle_0;
26701
27368
        TALLOC_CTX *_mem_save_type_0;
26702
27369
        TALLOC_CTX *_mem_save_needed_0;
26712
27379
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26713
27380
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26714
27381
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26715
 
                if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26716
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
 
27382
                size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
 
27383
                length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
 
27384
                if (length_key_name_0 > size_key_name_0) {
 
27385
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
26717
27386
                }
26718
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26719
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
 
27387
                NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
 
27388
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
26720
27389
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26721
27390
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26722
 
                if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26723
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
 
27391
                size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
 
27392
                length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
 
27393
                if (length_value_name_0 > size_value_name_0) {
 
27394
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
26724
27395
                }
26725
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26726
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
 
27396
                NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
 
27397
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
26727
27398
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26728
27399
                NDR_PULL_ALLOC(ndr, r->out.type);
26729
27400
                ZERO_STRUCTP(r->out.type);
26741
27412
                NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
26742
27413
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
26743
27414
                NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
 
27415
                size_buffer_1 = ndr_get_array_size(ndr, &r->out.buffer);
26744
27416
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26745
 
                        NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
 
27417
                        NDR_PULL_ALLOC_N(ndr, r->out.buffer, size_buffer_1);
26746
27418
                }
26747
 
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
 
27419
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, size_buffer_1));
26748
27420
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26749
27421
                        NDR_PULL_ALLOC(ndr, r->out.needed);
26750
27422
                }
26830
27502
 
26831
27503
_PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
26832
27504
{
 
27505
        uint32_t size_key_name_0 = 0;
 
27506
        uint32_t length_key_name_0 = 0;
26833
27507
        TALLOC_CTX *_mem_save_handle_0;
26834
27508
        TALLOC_CTX *_mem_save_needed_0;
26835
27509
        TALLOC_CTX *_mem_save_count_0;
26845
27519
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26846
27520
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26847
27521
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26848
 
                if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26849
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
 
27522
                size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
 
27523
                length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
 
27524
                if (length_key_name_0 > size_key_name_0) {
 
27525
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
26850
27526
                }
26851
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26852
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
 
27527
                NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
 
27528
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
26853
27529
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26854
27530
                NDR_PULL_ALLOC(ndr, r->out.needed);
26855
27531
                ZERO_STRUCTP(r->out.needed);
26896
27572
 
26897
27573
_PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
26898
27574
{
 
27575
        uint32_t size_info_0 = 0;
26899
27576
        uint32_t cntr_info_0;
26900
27577
        TALLOC_CTX *_mem_save_info_0;
26901
27578
        if (flags & NDR_IN) {
26904
27581
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
26905
27582
        }
26906
27583
        if (flags & NDR_OUT) {
26907
 
                NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
 
27584
                size_info_0 = r->in.count;
 
27585
                NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
26908
27586
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26909
27587
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26910
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
27588
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
26911
27589
                        NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26912
27590
                }
26913
 
                for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
 
27591
                for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
26914
27592
                        NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26915
27593
                }
26916
27594
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27011
27689
 
27012
27690
_PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
27013
27691
{
 
27692
        uint32_t size_key_name_0 = 0;
 
27693
        uint32_t length_key_name_0 = 0;
27014
27694
        TALLOC_CTX *_mem_save_handle_0;
27015
27695
        TALLOC_CTX *_mem_save__ndr_size_0;
27016
27696
        TALLOC_CTX *_mem_save_key_buffer_0;
27027
27707
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27028
27708
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27029
27709
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27030
 
                if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27031
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
 
27710
                size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
 
27711
                length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
 
27712
                if (length_key_name_0 > size_key_name_0) {
 
27713
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
27032
27714
                }
27033
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27034
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
 
27715
                NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
 
27716
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
27035
27717
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27036
27718
                NDR_PULL_ALLOC(ndr, r->out._ndr_size);
27037
27719
                ZERO_STRUCTP(r->out._ndr_size);
27137
27819
 
27138
27820
static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
27139
27821
{
 
27822
        uint32_t size_key_name_0 = 0;
 
27823
        uint32_t length_key_name_0 = 0;
 
27824
        uint32_t size_value_name_0 = 0;
 
27825
        uint32_t length_value_name_0 = 0;
27140
27826
        TALLOC_CTX *_mem_save_handle_0;
27141
27827
        if (flags & NDR_IN) {
27142
27828
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27148
27834
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27149
27835
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27150
27836
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27151
 
                if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27152
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
 
27837
                size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
 
27838
                length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
 
27839
                if (length_key_name_0 > size_key_name_0) {
 
27840
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
27153
27841
                }
27154
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27155
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
 
27842
                NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
 
27843
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
27156
27844
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27157
27845
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27158
 
                if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27159
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
 
27846
                size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
 
27847
                length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
 
27848
                if (length_value_name_0 > size_value_name_0) {
 
27849
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
27160
27850
                }
27161
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27162
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
 
27851
                NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
 
27852
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
27163
27853
        }
27164
27854
        if (flags & NDR_OUT) {
27165
27855
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27214
27904
 
27215
27905
static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
27216
27906
{
 
27907
        uint32_t size_key_name_0 = 0;
 
27908
        uint32_t length_key_name_0 = 0;
27217
27909
        TALLOC_CTX *_mem_save_handle_0;
27218
27910
        if (flags & NDR_IN) {
27219
27911
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27225
27917
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27226
27918
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27227
27919
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27228
 
                if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27229
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
 
27920
                size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
 
27921
                length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
 
27922
                if (length_key_name_0 > size_key_name_0) {
 
27923
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
27230
27924
                }
27231
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27232
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
 
27925
                NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
 
27926
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
27233
27927
        }
27234
27928
        if (flags & NDR_OUT) {
27235
27929
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27334
28028
static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
27335
28029
{
27336
28030
        uint32_t _ptr_server;
 
28031
        uint32_t size_server_1 = 0;
 
28032
        uint32_t length_server_1 = 0;
 
28033
        uint32_t size_architecture_0 = 0;
 
28034
        uint32_t length_architecture_0 = 0;
 
28035
        uint32_t size_driver_0 = 0;
 
28036
        uint32_t length_driver_0 = 0;
27337
28037
        TALLOC_CTX *_mem_save_server_0;
27338
28038
        if (flags & NDR_IN) {
27339
28039
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27347
28047
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27348
28048
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27349
28049
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27350
 
                        if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
27351
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
 
28050
                        size_server_1 = ndr_get_array_size(ndr, &r->in.server);
 
28051
                        length_server_1 = ndr_get_array_length(ndr, &r->in.server);
 
28052
                        if (length_server_1 > size_server_1) {
 
28053
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
27352
28054
                        }
27353
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
27354
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
 
28055
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
 
28056
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
27355
28057
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27356
28058
                }
27357
28059
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
27358
28060
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
27359
 
                if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
27360
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
 
28061
                size_architecture_0 = ndr_get_array_size(ndr, &r->in.architecture);
 
28062
                length_architecture_0 = ndr_get_array_length(ndr, &r->in.architecture);
 
28063
                if (length_architecture_0 > size_architecture_0) {
 
28064
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_0, length_architecture_0);
27361
28065
                }
27362
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
27363
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
 
28066
                NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
 
28067
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
27364
28068
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
27365
28069
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
27366
 
                if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
27367
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.driver), ndr_get_array_length(ndr, &r->in.driver));
 
28070
                size_driver_0 = ndr_get_array_size(ndr, &r->in.driver);
 
28071
                length_driver_0 = ndr_get_array_length(ndr, &r->in.driver);
 
28072
                if (length_driver_0 > size_driver_0) {
 
28073
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_0, length_driver_0);
27368
28074
                }
27369
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
27370
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
 
28075
                NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_0, sizeof(uint16_t)));
 
28076
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, length_driver_0, sizeof(uint16_t), CH_UTF16));
27371
28077
                NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
27372
28078
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
27373
28079
        }
27571
28277
 
27572
28278
static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
27573
28279
{
 
28280
        uint32_t size_function_name_0 = 0;
 
28281
        uint32_t length_function_name_0 = 0;
 
28282
        uint32_t size_out_data_1 = 0;
27574
28283
        TALLOC_CTX *_mem_save_handle_0;
27575
28284
        TALLOC_CTX *_mem_save_needed_0;
27576
28285
        TALLOC_CTX *_mem_save_status_code_0;
27586
28295
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27587
28296
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
27588
28297
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
27589
 
                if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
27590
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.function_name), ndr_get_array_length(ndr, &r->in.function_name));
 
28298
                size_function_name_0 = ndr_get_array_size(ndr, &r->in.function_name);
 
28299
                length_function_name_0 = ndr_get_array_length(ndr, &r->in.function_name);
 
28300
                if (length_function_name_0 > size_function_name_0) {
 
28301
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_function_name_0, length_function_name_0);
27591
28302
                }
27592
 
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
27593
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.function_name, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t), CH_UTF16));
 
28303
                NDR_CHECK(ndr_check_string_terminator(ndr, length_function_name_0, sizeof(uint16_t)));
 
28304
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.function_name, length_function_name_0, sizeof(uint16_t), CH_UTF16));
27594
28305
                NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
27595
28306
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
27596
28307
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
27610
28321
        }
27611
28322
        if (flags & NDR_OUT) {
27612
28323
                NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
 
28324
                size_out_data_1 = ndr_get_array_size(ndr, &r->out.out_data);
27613
28325
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27614
 
                        NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
 
28326
                        NDR_PULL_ALLOC_N(ndr, r->out.out_data, size_out_data_1);
27615
28327
                }
27616
 
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
 
28328
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, size_out_data_1));
27617
28329
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27618
28330
                        NDR_PULL_ALLOC(ndr, r->out.needed);
27619
28331
                }
27706
28418
_PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
27707
28419
{
27708
28420
        uint32_t _ptr_servername;
 
28421
        uint32_t size_servername_1 = 0;
 
28422
        uint32_t length_servername_1 = 0;
27709
28423
        TALLOC_CTX *_mem_save_servername_0;
27710
28424
        TALLOC_CTX *_mem_save_info_ctr_0;
27711
28425
        if (flags & NDR_IN) {
27720
28434
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
27721
28435
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
27722
28436
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
27723
 
                        if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
27724
 
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
 
28437
                        size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
 
28438
                        length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
 
28439
                        if (length_servername_1 > size_servername_1) {
 
28440
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
27725
28441
                        }
27726
 
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
27727
 
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
 
28442
                        NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
 
28443
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
27728
28444
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
27729
28445
                }
27730
28446
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {