Quoting Adam D. Barratt (adam@adam-barratt.org.uk): > Thanks, and for your patience with us on this. > > Please feel free to go ahead with the upload. I uploaded the new package this morning. debdiff attached. Picky people will notice that this version also drop an accidental change that leaked into the squeeze2 package: an extra, empty, nohup.out file on top of the source tree and the relevant debian/patches patch. Apart from that minor change (which I didn't think relevant for being documented in the changelog), the changes are exactly those I proposed in #620210.
diff -Nru samba-3.5.6~dfsg/debian/changelog samba-3.5.6~dfsg/debian/changelog --- samba-3.5.6~dfsg/debian/changelog 2011-02-23 20:22:40.000000000 +0100 +++ samba-3.5.6~dfsg/debian/changelog 2011-04-30 18:52:21.000000000 +0200 @@ -1,3 +1,17 @@ +samba (2:3.5.6~dfsg-3squeeze3) stable-proposed-updates; urgency=low + + * Cherry-picked fixes from samba 3.5.8 for some important bugs: + - Upstream bug 7567: printing from Windows 7 fails with 0x000003e6. + Closes: #617429 + - Upstream bug 6727: printer device settings not saved for normal + domain users. Closes: #611177 + - Upstream bug 7777: winbind leaks gids with idmap ldap backend + Closes: #613624 + - Upstream bug 7880: rpcclient deldriver does not remove drivers + from all architectures. + + -- Christian Perrier <bubulle@debian.org> Sun, 13 Mar 2011 08:07:42 +0100 + samba (2:3.5.6~dfsg-3squeeze2) stable-security; urgency=high * Security update, fixing the following issue: diff -Nru samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0001-rerun-make-samba3-idl.patch samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0001-rerun-make-samba3-idl.patch --- samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0001-rerun-make-samba3-idl.patch 1970-01-01 01:00:00.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0001-rerun-make-samba3-idl.patch 2011-03-14 22:05:30.000000000 +0100 @@ -0,0 +1,5993 @@ +From 1a58a34d41a42baa696fa543cd8a9d79794886a3 Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher <metze@samba.org> +Date: Wed, 2 Mar 2011 10:14:54 +0100 +Subject: [PATCH 1/9] rerun 'make samba3-idl' + +metze + +The last 10 patches address bug #7567 (printing from Windows 7 fails with +0x000003e6 (in AD w2k8r2 controlled domain)). +(cherry picked from commit c81256b04ead01f0d44c8a235d2ac793b7a51364) +(cherry picked from commit cbfda3a086e27b6efa7db6ab1d41ef96fe04d171) +--- + librpc/gen_ndr/drsblobs.h | 4 +- + librpc/gen_ndr/eventlog.h | 12 +- + librpc/gen_ndr/misc.h | 4 +- + librpc/gen_ndr/nbt.h | 26 +- + librpc/gen_ndr/ndr_drsblobs.c | 16 +- + librpc/gen_ndr/ndr_eventlog.c | 24 +- + librpc/gen_ndr/ndr_misc.c | 12 +- + librpc/gen_ndr/ndr_nbt.c | 44 +- + librpc/gen_ndr/ndr_netlogon.c | 8 +- + librpc/gen_ndr/ndr_spoolss.c | 1056 ++++++++++++++++++++-------------------- + librpc/gen_ndr/ndr_svcctl.c | 40 +- + librpc/gen_ndr/netlogon.h | 4 +- + librpc/gen_ndr/spoolss.h | 304 ++++++------ + librpc/gen_ndr/svcctl.h | 10 +- + 14 files changed, 782 insertions(+), 782 deletions(-) + +diff --git a/librpc/gen_ndr/drsblobs.h b/librpc/gen_ndr/drsblobs.h +index 64f6ce8..f4adc57 100644 +--- a/librpc/gen_ndr/drsblobs.h ++++ b/librpc/gen_ndr/drsblobs.h +@@ -84,9 +84,9 @@ struct repsFromTo1 { + + struct repsFromTo2OtherInfo { + uint32_t __ndr_size;/* [value(ndr_size_repsFromTo2OtherInfo(this,ndr->iconv_convenience,ndr->flags))] */ +- const char * dns_name1;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * dns_name1;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t unknown1; +- const char * dns_name2;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * dns_name2;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint64_t unknown2; + }/* [relative_base,gensize,public] */; + +diff --git a/librpc/gen_ndr/eventlog.h b/librpc/gen_ndr/eventlog.h +index dc2e877..2ff0cbc 100644 +--- a/librpc/gen_ndr/eventlog.h ++++ b/librpc/gen_ndr/eventlog.h +@@ -59,13 +59,13 @@ struct eventlog_Record_tdb { + uint32_t data_length;/* [value(data.length)] */ + uint32_t data_offset; + uint32_t source_name_len;/* [value(2*strlen_m_term(source_name))] */ +- const char * source_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * source_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t computer_name_len;/* [value(2*strlen_m_term(computer_name))] */ +- const char * computer_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * computer_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t sid_padding; + DATA_BLOB sid; + uint32_t strings_len;/* [value(2*ndr_size_string_array(strings,num_of_strings,LIBNDR_FLAG_STR_NULLTERM))] */ +- const char * *strings;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * *strings;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + DATA_BLOB data; + uint32_t padding; + }/* [public,flag(LIBNDR_FLAG_NOALIGN|LIBNDR_PRINT_ARRAY_HEX)] */; +@@ -119,10 +119,10 @@ struct EVENTLOGRECORD { + uint32_t UserSidOffset;/* [value(56+2*(strlen_m_term(SourceName)+strlen_m_term(Computername)))] */ + uint32_t DataLength; + uint32_t DataOffset;/* [value(56+2*(strlen_m_term(SourceName)+strlen_m_term(Computername))+UserSidLength+(2*ndr_size_string_array(Strings,NumStrings,LIBNDR_FLAG_STR_NULLTERM)))] */ +- const char * SourceName;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * Computername;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * SourceName;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * Computername;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + struct dom_sid0 UserSid;/* [subcontext_size(UserSidLength),subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */ +- const char * *Strings;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * *Strings;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint8_t *Data;/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */ + const char * Pad;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */ + uint32_t Length2;/* [value(Length)] */ +diff --git a/librpc/gen_ndr/misc.h b/librpc/gen_ndr/misc.h +index 6672c61..90330b3 100644 +--- a/librpc/gen_ndr/misc.h ++++ b/librpc/gen_ndr/misc.h +@@ -84,10 +84,10 @@ enum winreg_Type + ; + + union winreg_Data { +- const char * string;/* [flag(LIBNDR_FLAG_STR_NULLTERM),case(REG_SZ)] */ ++ const char * string;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2),case(REG_SZ)] */ + DATA_BLOB binary;/* [flag(LIBNDR_FLAG_REMAINING),case(REG_BINARY)] */ + uint32_t value;/* [case(REG_DWORD)] */ +- const char ** string_array;/* [flag(LIBNDR_FLAG_STR_NULLTERM),case(REG_MULTI_SZ)] */ ++ const char ** string_array;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2),case(REG_MULTI_SZ)] */ + DATA_BLOB data;/* [flag(LIBNDR_FLAG_REMAINING),default] */ + }/* [public,nodiscriminant,flag(LIBNDR_FLAG_LITTLE_ENDIAN)] */; + +diff --git a/librpc/gen_ndr/nbt.h b/librpc/gen_ndr/nbt.h +index ec234e1..31ea414 100644 +--- a/librpc/gen_ndr/nbt.h ++++ b/librpc/gen_ndr/nbt.h +@@ -456,8 +456,8 @@ enum netlogon_command + + struct NETLOGON_SAM_LOGON_REQUEST { + uint16_t request_count; +- const char * computer_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * computer_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + const char * mailslot_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */ + uint32_t acct_control; + uint32_t sid_size;/* [value(ndr_size_dom_sid0(&sid,ndr->flags))] */ +@@ -470,9 +470,9 @@ struct NETLOGON_SAM_LOGON_REQUEST { + + struct NETLOGON_SAM_LOGON_RESPONSE_NT40 { + enum netlogon_command command; +- const char * server;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * domain;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * server;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * domain;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t nt_version; + uint16_t lmnt_token; + uint16_t lm20_token; +@@ -480,9 +480,9 @@ struct NETLOGON_SAM_LOGON_RESPONSE_NT40 { + + struct NETLOGON_SAM_LOGON_RESPONSE { + enum netlogon_command command; +- const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * domain_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * domain_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + struct GUID domain_uuid; + struct GUID zero_uuid; + const char * forest; +@@ -520,7 +520,7 @@ struct nbt_netlogon_query_for_pdc { + const char * computer_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */ + const char * mailslot_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */ + DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN2)] */ +- const char * unicode_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * unicode_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t nt_version; + uint16_t lmnt_token; + uint16_t lm20_token; +@@ -530,8 +530,8 @@ struct nbt_netlogon_response_from_pdc { + enum netlogon_command command; + const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */ + DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN2)] */ +- const char * unicode_pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * domain_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * unicode_pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * domain_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t nt_version; + uint16_t lmnt_token; + uint16_t lm20_token; +@@ -551,8 +551,8 @@ struct NETLOGON_DB_CHANGE { + const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */ + const char * domain;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */ + DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN2)] */ +- const char * unicode_pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * unicode_domain;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * unicode_pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * unicode_domain;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t db_count; + struct nbt_db_change_info *dbchange; + uint32_t sid_size;/* [value(ndr_size_dom_sid0(&sid,ndr->flags))] */ +diff --git a/librpc/gen_ndr/ndr_drsblobs.c b/librpc/gen_ndr/ndr_drsblobs.c +index 33ebf4c..948fdc5 100644 +--- a/librpc/gen_ndr/ndr_drsblobs.c ++++ b/librpc/gen_ndr/ndr_drsblobs.c +@@ -638,14 +638,14 @@ _PUBLIC_ enum ndr_err_code ndr_push_repsFromTo2OtherInfo(struct ndr_push *ndr, i + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_repsFromTo2OtherInfo(r, ndr->iconv_convenience, ndr->flags))); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dns_name1)); + ndr->flags = _flags_save_string; + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dns_name2)); + ndr->flags = _flags_save_string; + } +@@ -656,7 +656,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_repsFromTo2OtherInfo(struct ndr_push *ndr, i + NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->dns_name1) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dns_name1)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dns_name1)); +@@ -666,7 +666,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_repsFromTo2OtherInfo(struct ndr_push *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->dns_name2) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dns_name2)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dns_name2)); +@@ -692,7 +692,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_repsFromTo2OtherInfo(struct ndr_pull *ndr, i + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name1)); + if (_ptr_dns_name1) { + NDR_PULL_ALLOC(ndr, r->dns_name1); +@@ -705,7 +705,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_repsFromTo2OtherInfo(struct ndr_pull *ndr, i + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name2)); + if (_ptr_dns_name2) { + NDR_PULL_ALLOC(ndr, r->dns_name2); +@@ -722,7 +722,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_repsFromTo2OtherInfo(struct ndr_pull *ndr, i + NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->dns_name1) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -737,7 +737,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_repsFromTo2OtherInfo(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->dns_name2) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +diff --git a/librpc/gen_ndr/ndr_eventlog.c b/librpc/gen_ndr/ndr_eventlog.c +index a7e502c..e0ac6d2 100644 +--- a/librpc/gen_ndr/ndr_eventlog.c ++++ b/librpc/gen_ndr/ndr_eventlog.c +@@ -121,14 +121,14 @@ _PUBLIC_ enum ndr_err_code ndr_push_eventlog_Record_tdb(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->source_name))); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->source_name)); + ndr->flags = _flags_save_string; + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->computer_name))); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->computer_name)); + ndr->flags = _flags_save_string; + } +@@ -137,7 +137,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_eventlog_Record_tdb(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * ndr_size_string_array(r->strings, r->num_of_strings, LIBNDR_FLAG_STR_NULLTERM))); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + for (cntr_strings_0 = 0; cntr_strings_0 < r->num_of_strings; cntr_strings_0++) { + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->strings[cntr_strings_0])); + } +@@ -185,14 +185,14 @@ _PUBLIC_ enum ndr_err_code ndr_pull_eventlog_Record_tdb(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->source_name_len)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->source_name)); + ndr->flags = _flags_save_string; + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->computer_name_len)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->computer_name)); + ndr->flags = _flags_save_string; + } +@@ -201,7 +201,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_eventlog_Record_tdb(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->strings_len)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_PULL_ALLOC_N(ndr, r->strings, r->num_of_strings); + _mem_save_strings_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->strings, 0); +@@ -385,13 +385,13 @@ _PUBLIC_ enum ndr_err_code ndr_push_EVENTLOGRECORD(struct ndr_push *ndr, int ndr + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 56 + 2 * (strlen_m_term(r->SourceName) + strlen_m_term(r->Computername)) + ndr_size_dom_sid0(&r->UserSid, ndr->flags) + (2 * ndr_size_string_array(r->Strings, r->NumStrings, LIBNDR_FLAG_STR_NULLTERM)))); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->SourceName)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->Computername)); + ndr->flags = _flags_save_string; + } +@@ -408,7 +408,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_EVENTLOGRECORD(struct ndr_push *ndr, int ndr + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + for (cntr_Strings_0 = 0; cntr_Strings_0 < r->NumStrings; cntr_Strings_0++) { + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->Strings[cntr_Strings_0])); + } +@@ -463,13 +463,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EVENTLOGRECORD(struct ndr_pull *ndr, int ndr + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataOffset)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->SourceName)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->Computername)); + ndr->flags = _flags_save_string; + } +@@ -486,7 +486,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EVENTLOGRECORD(struct ndr_pull *ndr, int ndr + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_PULL_ALLOC_N(ndr, r->Strings, r->NumStrings); + _mem_save_Strings_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->Strings, 0); +diff --git a/librpc/gen_ndr/ndr_misc.c b/librpc/gen_ndr/ndr_misc.c +index 1f4d0c9..99cb045 100644 +--- a/librpc/gen_ndr/ndr_misc.c ++++ b/librpc/gen_ndr/ndr_misc.c +@@ -226,7 +226,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_winreg_Data(struct ndr_push *ndr, int ndr_fl + case REG_SZ: { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string)); + ndr->flags = _flags_save_string; + } +@@ -235,7 +235,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_winreg_Data(struct ndr_push *ndr, int ndr_fl + case REG_EXPAND_SZ: { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string)); + ndr->flags = _flags_save_string; + } +@@ -266,7 +266,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_winreg_Data(struct ndr_push *ndr, int ndr_fl + case REG_MULTI_SZ: { + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array)); + ndr->flags = _flags_save_string_array; + } +@@ -333,7 +333,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_winreg_Data(struct ndr_pull *ndr, int ndr_fl + case REG_SZ: { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string)); + ndr->flags = _flags_save_string; + } +@@ -342,7 +342,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_winreg_Data(struct ndr_pull *ndr, int ndr_fl + case REG_EXPAND_SZ: { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string)); + ndr->flags = _flags_save_string; + } +@@ -373,7 +373,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_winreg_Data(struct ndr_pull *ndr, int ndr_fl + case REG_MULTI_SZ: { + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array)); + ndr->flags = _flags_save_string_array; + } +diff --git a/librpc/gen_ndr/ndr_nbt.c b/librpc/gen_ndr/ndr_nbt.c +index 491dfd6..bffb25a 100644 +--- a/librpc/gen_ndr/ndr_nbt.c ++++ b/librpc/gen_ndr/ndr_nbt.c +@@ -1749,19 +1749,19 @@ _PUBLIC_ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_ + NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain)); + ndr->flags = _flags_save_string; + } +@@ -1787,19 +1787,19 @@ _PUBLIC_ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_ + NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain)); + ndr->flags = _flags_save_string; + } +@@ -1844,19 +1844,19 @@ _PUBLIC_ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_push + NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name)); + ndr->flags = _flags_save_string; + } +@@ -1889,19 +1889,19 @@ _PUBLIC_ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_pull + NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name)); + ndr->flags = _flags_save_string; + } +@@ -2082,7 +2082,7 @@ static enum ndr_err_code ndr_push_nbt_netlogon_query_for_pdc(struct ndr_push *nd + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_name)); + ndr->flags = _flags_save_string; + } +@@ -2120,7 +2120,7 @@ static enum ndr_err_code ndr_pull_nbt_netlogon_query_for_pdc(struct ndr_pull *nd + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_name)); + ndr->flags = _flags_save_string; + } +@@ -2170,13 +2170,13 @@ _PUBLIC_ enum ndr_err_code ndr_push_nbt_netlogon_response_from_pdc(struct ndr_pu + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_pdc_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name)); + ndr->flags = _flags_save_string; + } +@@ -2214,13 +2214,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_nbt_netlogon_response_from_pdc(struct ndr_pu + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_pdc_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name)); + ndr->flags = _flags_save_string; + } +@@ -2323,13 +2323,13 @@ static enum ndr_err_code ndr_push_NETLOGON_DB_CHANGE(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_pdc_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_domain)); + ndr->flags = _flags_save_string; + } +@@ -2383,13 +2383,13 @@ static enum ndr_err_code ndr_pull_NETLOGON_DB_CHANGE(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_pdc_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_domain)); + ndr->flags = _flags_save_string; + } +diff --git a/librpc/gen_ndr/ndr_netlogon.c b/librpc/gen_ndr/ndr_netlogon.c +index 8773439..0ea551d 100644 +--- a/librpc/gen_ndr/ndr_netlogon.c ++++ b/librpc/gen_ndr/ndr_netlogon.c +@@ -6712,7 +6712,7 @@ static enum ndr_err_code ndr_push_netr_ChangeLogObject(struct ndr_push *ndr, int + case NETR_CHANGELOG_NAME_INCLUDED: { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->object_name)); + ndr->flags = _flags_save_string; + } +@@ -6754,7 +6754,7 @@ static enum ndr_err_code ndr_pull_netr_ChangeLogObject(struct ndr_pull *ndr, int + case NETR_CHANGELOG_NAME_INCLUDED: { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->object_name)); + ndr->flags = _flags_save_string; + } +@@ -7519,7 +7519,7 @@ static enum ndr_err_code ndr_push_netr_OsVersionInfoEx(struct ndr_push *ndr, int + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->PlatformId)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + { + struct ndr_push *_ndr_CSDVersion; + NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_CSDVersion, 0, 256)); +@@ -7551,7 +7551,7 @@ static enum ndr_err_code ndr_pull_netr_OsVersionInfoEx(struct ndr_pull *ndr, int + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->PlatformId)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + { + struct ndr_pull *_ndr_CSDVersion; + NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_CSDVersion, 0, 256)); +diff --git a/librpc/gen_ndr/ndr_spoolss.c b/librpc/gen_ndr/ndr_spoolss.c +index af555d7..41f994b 100644 +--- a/librpc/gen_ndr/ndr_spoolss.c ++++ b/librpc/gen_ndr/ndr_spoolss.c +@@ -314,13 +314,13 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, i + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername)); + ndr->flags = _flags_save_string; + } +@@ -356,7 +356,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->printername) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername)); +@@ -366,7 +366,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->servername) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername)); +@@ -388,7 +388,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, i + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername)); + if (_ptr_printername) { + NDR_PULL_ALLOC(ndr, r->printername); +@@ -400,7 +400,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername)); + if (_ptr_servername) { + NDR_PULL_ALLOC(ndr, r->servername); +@@ -442,7 +442,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->printername) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -457,7 +457,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->servername) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1286,19 +1286,19 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, i + NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment)); + ndr->flags = _flags_save_string; + } +@@ -1307,7 +1307,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->description) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description)); +@@ -1317,7 +1317,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name)); +@@ -1327,7 +1327,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->comment) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment)); +@@ -1352,7 +1352,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, i + NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description)); + if (_ptr_description) { + NDR_PULL_ALLOC(ndr, r->description); +@@ -1364,7 +1364,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name)); + if (_ptr_name) { + NDR_PULL_ALLOC(ndr, r->name); +@@ -1376,7 +1376,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment)); + if (_ptr_comment) { + NDR_PULL_ALLOC(ndr, r->comment); +@@ -1391,7 +1391,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->description) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1406,7 +1406,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1421,7 +1421,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->comment) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1501,7 +1501,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername)); + if (_ptr_servername) { + NDR_PULL_ALLOC(ndr, r->servername); +@@ -1513,7 +1513,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername)); + if (_ptr_printername) { + NDR_PULL_ALLOC(ndr, r->printername); +@@ -1525,7 +1525,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename)); + if (_ptr_sharename) { + NDR_PULL_ALLOC(ndr, r->sharename); +@@ -1537,7 +1537,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname)); + if (_ptr_portname) { + NDR_PULL_ALLOC(ndr, r->portname); +@@ -1549,7 +1549,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername)); + if (_ptr_drivername) { + NDR_PULL_ALLOC(ndr, r->drivername); +@@ -1561,7 +1561,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment)); + if (_ptr_comment) { + NDR_PULL_ALLOC(ndr, r->comment); +@@ -1573,7 +1573,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location)); + if (_ptr_location) { + NDR_PULL_ALLOC(ndr, r->location); +@@ -1597,7 +1597,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile)); + if (_ptr_sepfile) { + NDR_PULL_ALLOC(ndr, r->sepfile); +@@ -1609,7 +1609,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor)); + if (_ptr_printprocessor) { + NDR_PULL_ALLOC(ndr, r->printprocessor); +@@ -1621,7 +1621,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype)); + if (_ptr_datatype) { + NDR_PULL_ALLOC(ndr, r->datatype); +@@ -1633,7 +1633,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters)); + if (_ptr_parameters) { + NDR_PULL_ALLOC(ndr, r->parameters); +@@ -1671,7 +1671,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->servername) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1686,7 +1686,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->printername) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1701,7 +1701,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->sharename) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1716,7 +1716,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->portname) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1731,7 +1731,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->drivername) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1746,7 +1746,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->comment) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1761,7 +1761,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->location) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1796,7 +1796,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->sepfile) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1811,7 +1811,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->printprocessor) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1826,7 +1826,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->datatype) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1841,7 +1841,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->parameters) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -2077,13 +2077,13 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, i + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername)); + ndr->flags = _flags_save_string; + } +@@ -2093,7 +2093,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->printername) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername)); +@@ -2103,7 +2103,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->servername) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername)); +@@ -2125,7 +2125,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, i + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername)); + if (_ptr_printername) { + NDR_PULL_ALLOC(ndr, r->printername); +@@ -2137,7 +2137,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername)); + if (_ptr_servername) { + NDR_PULL_ALLOC(ndr, r->servername); +@@ -2153,7 +2153,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->printername) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -2168,7 +2168,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->servername) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -2216,13 +2216,13 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, i + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname)); + ndr->flags = _flags_save_string; + } +@@ -2234,7 +2234,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->printername) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername)); +@@ -2244,7 +2244,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->portname) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname)); +@@ -2266,7 +2266,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, i + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername)); + if (_ptr_printername) { + NDR_PULL_ALLOC(ndr, r->printername); +@@ -2278,7 +2278,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname)); + if (_ptr_portname) { + NDR_PULL_ALLOC(ndr, r->portname); +@@ -2296,7 +2296,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->printername) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -2311,7 +2311,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->portname) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -2424,7 +2424,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, i + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid)); + ndr->flags = _flags_save_string; + } +@@ -2434,7 +2434,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->guid) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->guid)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid)); +@@ -2454,7 +2454,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, i + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid)); + if (_ptr_guid) { + NDR_PULL_ALLOC(ndr, r->guid); +@@ -2470,7 +2470,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->guid) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -2990,37 +2990,37 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int n + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status)); + ndr->flags = _flags_save_string; + } +@@ -3035,7 +3035,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int n + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->printer_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name)); +@@ -3045,7 +3045,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->server_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name)); +@@ -3055,7 +3055,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->user_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name)); +@@ -3065,7 +3065,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->document_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name)); +@@ -3075,7 +3075,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_type) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type)); +@@ -3085,7 +3085,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->text_status) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status)); +@@ -3116,7 +3116,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int n + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name)); + if (_ptr_printer_name) { + NDR_PULL_ALLOC(ndr, r->printer_name); +@@ -3128,7 +3128,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->server_name); +@@ -3140,7 +3140,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name)); + if (_ptr_user_name) { + NDR_PULL_ALLOC(ndr, r->user_name); +@@ -3152,7 +3152,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name)); + if (_ptr_document_name) { + NDR_PULL_ALLOC(ndr, r->document_name); +@@ -3164,7 +3164,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type)); + if (_ptr_data_type) { + NDR_PULL_ALLOC(ndr, r->data_type); +@@ -3176,7 +3176,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status)); + if (_ptr_text_status) { + NDR_PULL_ALLOC(ndr, r->text_status); +@@ -3200,7 +3200,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int n + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->printer_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3215,7 +3215,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->server_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3230,7 +3230,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->user_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3245,7 +3245,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->document_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3260,7 +3260,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_type) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3275,7 +3275,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->text_status) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3354,55 +3354,55 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int n + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name)); + ndr->flags = _flags_save_string; + } +@@ -3414,7 +3414,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status)); + ndr->flags = _flags_save_string; + } +@@ -3439,7 +3439,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int n + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->printer_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name)); +@@ -3449,7 +3449,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->server_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name)); +@@ -3459,7 +3459,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->user_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name)); +@@ -3469,7 +3469,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->document_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name)); +@@ -3479,7 +3479,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->notify_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name)); +@@ -3489,7 +3489,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_type) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type)); +@@ -3499,7 +3499,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->print_processor) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor)); +@@ -3509,7 +3509,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->parameters) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters)); +@@ -3519,7 +3519,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name)); +@@ -3544,7 +3544,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->text_status) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status)); +@@ -3602,7 +3602,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name)); + if (_ptr_printer_name) { + NDR_PULL_ALLOC(ndr, r->printer_name); +@@ -3614,7 +3614,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->server_name); +@@ -3626,7 +3626,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name)); + if (_ptr_user_name) { + NDR_PULL_ALLOC(ndr, r->user_name); +@@ -3638,7 +3638,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name)); + if (_ptr_document_name) { + NDR_PULL_ALLOC(ndr, r->document_name); +@@ -3650,7 +3650,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name)); + if (_ptr_notify_name) { + NDR_PULL_ALLOC(ndr, r->notify_name); +@@ -3662,7 +3662,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type)); + if (_ptr_data_type) { + NDR_PULL_ALLOC(ndr, r->data_type); +@@ -3674,7 +3674,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor)); + if (_ptr_print_processor) { + NDR_PULL_ALLOC(ndr, r->print_processor); +@@ -3686,7 +3686,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters)); + if (_ptr_parameters) { + NDR_PULL_ALLOC(ndr, r->parameters); +@@ -3698,7 +3698,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name)); + if (_ptr_driver_name) { + NDR_PULL_ALLOC(ndr, r->driver_name); +@@ -3722,7 +3722,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status)); + if (_ptr_text_status) { + NDR_PULL_ALLOC(ndr, r->text_status); +@@ -3762,7 +3762,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->printer_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3777,7 +3777,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->server_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3792,7 +3792,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->user_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3807,7 +3807,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->document_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3822,7 +3822,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->notify_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3837,7 +3837,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_type) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3852,7 +3852,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->print_processor) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3867,7 +3867,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->parameters) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3882,7 +3882,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -3917,7 +3917,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->text_status) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -4099,55 +4099,55 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int n + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name)); + ndr->flags = _flags_save_string; + } +@@ -4159,7 +4159,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status)); + ndr->flags = _flags_save_string; + } +@@ -4185,7 +4185,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int n + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->printer_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name)); +@@ -4195,7 +4195,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->server_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name)); +@@ -4205,7 +4205,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->user_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name)); +@@ -4215,7 +4215,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->document_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name)); +@@ -4225,7 +4225,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->notify_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name)); +@@ -4235,7 +4235,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_type) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type)); +@@ -4245,7 +4245,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->print_processor) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor)); +@@ -4255,7 +4255,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->parameters) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters)); +@@ -4265,7 +4265,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name)); +@@ -4290,7 +4290,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->text_status) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status)); +@@ -4348,7 +4348,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name)); + if (_ptr_printer_name) { + NDR_PULL_ALLOC(ndr, r->printer_name); +@@ -4360,7 +4360,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->server_name); +@@ -4372,7 +4372,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name)); + if (_ptr_user_name) { + NDR_PULL_ALLOC(ndr, r->user_name); +@@ -4384,7 +4384,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name)); + if (_ptr_document_name) { + NDR_PULL_ALLOC(ndr, r->document_name); +@@ -4396,7 +4396,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name)); + if (_ptr_notify_name) { + NDR_PULL_ALLOC(ndr, r->notify_name); +@@ -4408,7 +4408,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type)); + if (_ptr_data_type) { + NDR_PULL_ALLOC(ndr, r->data_type); +@@ -4420,7 +4420,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor)); + if (_ptr_print_processor) { + NDR_PULL_ALLOC(ndr, r->print_processor); +@@ -4432,7 +4432,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters)); + if (_ptr_parameters) { + NDR_PULL_ALLOC(ndr, r->parameters); +@@ -4444,7 +4444,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name)); + if (_ptr_driver_name) { + NDR_PULL_ALLOC(ndr, r->driver_name); +@@ -4468,7 +4468,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status)); + if (_ptr_text_status) { + NDR_PULL_ALLOC(ndr, r->text_status); +@@ -4509,7 +4509,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->printer_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -4524,7 +4524,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->server_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -4539,7 +4539,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->user_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -4554,7 +4554,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->document_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -4569,7 +4569,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->notify_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -4584,7 +4584,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_type) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -4599,7 +4599,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->print_processor) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -4614,7 +4614,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->parameters) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -4629,7 +4629,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -4664,7 +4664,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->text_status) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -7974,7 +7974,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2)); + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string)); + ndr->flags = _flags_save_string_array; + } +@@ -7992,7 +7992,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size)); + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string)); + ndr->flags = _flags_save_string_array; + } +@@ -10468,7 +10468,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name)); + ndr->flags = _flags_save_string; + } +@@ -10477,7 +10477,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name)); +@@ -10497,7 +10497,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name)); + if (_ptr_driver_name) { + NDR_PULL_ALLOC(ndr, r->driver_name); +@@ -10512,7 +10512,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -10554,31 +10554,31 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file)); + ndr->flags = _flags_save_string; + } +@@ -10587,7 +10587,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name)); +@@ -10597,7 +10597,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->architecture) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture)); +@@ -10607,7 +10607,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_path) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path)); +@@ -10617,7 +10617,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file)); +@@ -10627,7 +10627,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->config_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file)); +@@ -10656,7 +10656,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name)); + if (_ptr_driver_name) { + NDR_PULL_ALLOC(ndr, r->driver_name); +@@ -10668,7 +10668,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture)); + if (_ptr_architecture) { + NDR_PULL_ALLOC(ndr, r->architecture); +@@ -10680,7 +10680,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path)); + if (_ptr_driver_path) { + NDR_PULL_ALLOC(ndr, r->driver_path); +@@ -10692,7 +10692,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file)); + if (_ptr_data_file) { + NDR_PULL_ALLOC(ndr, r->data_file); +@@ -10704,7 +10704,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file)); + if (_ptr_config_file) { + NDR_PULL_ALLOC(ndr, r->config_file); +@@ -10719,7 +10719,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -10734,7 +10734,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->architecture) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -10749,7 +10749,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_path) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -10764,7 +10764,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -10779,7 +10779,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->config_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -10846,55 +10846,55 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files)); + ndr->flags = _flags_save_string_array; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype)); + ndr->flags = _flags_save_string; + } +@@ -10903,7 +10903,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name)); +@@ -10913,7 +10913,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->architecture) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture)); +@@ -10923,7 +10923,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_path) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path)); +@@ -10933,7 +10933,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file)); +@@ -10943,7 +10943,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->config_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file)); +@@ -10953,7 +10953,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->help_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file)); +@@ -10963,7 +10963,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->dependent_files) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files)); + NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files)); +@@ -10973,7 +10973,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->monitor_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name)); +@@ -10983,7 +10983,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->default_datatype) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype)); +@@ -11020,7 +11020,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name)); + if (_ptr_driver_name) { + NDR_PULL_ALLOC(ndr, r->driver_name); +@@ -11032,7 +11032,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture)); + if (_ptr_architecture) { + NDR_PULL_ALLOC(ndr, r->architecture); +@@ -11044,7 +11044,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path)); + if (_ptr_driver_path) { + NDR_PULL_ALLOC(ndr, r->driver_path); +@@ -11056,7 +11056,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file)); + if (_ptr_data_file) { + NDR_PULL_ALLOC(ndr, r->data_file); +@@ -11068,7 +11068,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file)); + if (_ptr_config_file) { + NDR_PULL_ALLOC(ndr, r->config_file); +@@ -11080,7 +11080,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file)); + if (_ptr_help_file) { + NDR_PULL_ALLOC(ndr, r->help_file); +@@ -11092,7 +11092,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files)); + if (_ptr_dependent_files) { + NDR_PULL_ALLOC(ndr, r->dependent_files); +@@ -11104,7 +11104,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name)); + if (_ptr_monitor_name) { + NDR_PULL_ALLOC(ndr, r->monitor_name); +@@ -11116,7 +11116,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype)); + if (_ptr_default_datatype) { + NDR_PULL_ALLOC(ndr, r->default_datatype); +@@ -11131,7 +11131,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11146,7 +11146,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->architecture) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11161,7 +11161,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_path) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11176,7 +11176,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11191,7 +11191,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->config_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11206,7 +11206,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->help_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11221,7 +11221,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->dependent_files) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11236,7 +11236,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->monitor_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11251,7 +11251,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->default_datatype) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11342,61 +11342,61 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files)); + ndr->flags = _flags_save_string_array; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names)); + ndr->flags = _flags_save_string_array; + } +@@ -11405,7 +11405,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name)); +@@ -11415,7 +11415,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->architecture) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture)); +@@ -11425,7 +11425,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_path) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path)); +@@ -11435,7 +11435,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file)); +@@ -11445,7 +11445,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->config_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file)); +@@ -11455,7 +11455,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->help_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file)); +@@ -11465,7 +11465,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->dependent_files) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files)); + NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files)); +@@ -11475,7 +11475,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->monitor_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name)); +@@ -11485,7 +11485,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->default_datatype) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype)); +@@ -11495,7 +11495,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->previous_names) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names)); + NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names)); +@@ -11534,7 +11534,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name)); + if (_ptr_driver_name) { + NDR_PULL_ALLOC(ndr, r->driver_name); +@@ -11546,7 +11546,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture)); + if (_ptr_architecture) { + NDR_PULL_ALLOC(ndr, r->architecture); +@@ -11558,7 +11558,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path)); + if (_ptr_driver_path) { + NDR_PULL_ALLOC(ndr, r->driver_path); +@@ -11570,7 +11570,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file)); + if (_ptr_data_file) { + NDR_PULL_ALLOC(ndr, r->data_file); +@@ -11582,7 +11582,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file)); + if (_ptr_config_file) { + NDR_PULL_ALLOC(ndr, r->config_file); +@@ -11594,7 +11594,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file)); + if (_ptr_help_file) { + NDR_PULL_ALLOC(ndr, r->help_file); +@@ -11606,7 +11606,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files)); + if (_ptr_dependent_files) { + NDR_PULL_ALLOC(ndr, r->dependent_files); +@@ -11618,7 +11618,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name)); + if (_ptr_monitor_name) { + NDR_PULL_ALLOC(ndr, r->monitor_name); +@@ -11630,7 +11630,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype)); + if (_ptr_default_datatype) { + NDR_PULL_ALLOC(ndr, r->default_datatype); +@@ -11642,7 +11642,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names)); + if (_ptr_previous_names) { + NDR_PULL_ALLOC(ndr, r->previous_names); +@@ -11657,7 +11657,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11672,7 +11672,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->architecture) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11687,7 +11687,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_path) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11702,7 +11702,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11717,7 +11717,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->config_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11732,7 +11732,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->help_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11747,7 +11747,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->dependent_files) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11762,7 +11762,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->monitor_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11777,7 +11777,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->default_datatype) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11792,7 +11792,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->previous_names) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -11889,31 +11889,31 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file)); + ndr->flags = _flags_save_string; + } +@@ -11925,7 +11925,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name)); +@@ -11935,7 +11935,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->architecture) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture)); +@@ -11945,7 +11945,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_path) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path)); +@@ -11955,7 +11955,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file)); +@@ -11965,7 +11965,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->config_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file)); +@@ -11994,7 +11994,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name)); + if (_ptr_driver_name) { + NDR_PULL_ALLOC(ndr, r->driver_name); +@@ -12006,7 +12006,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture)); + if (_ptr_architecture) { + NDR_PULL_ALLOC(ndr, r->architecture); +@@ -12018,7 +12018,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path)); + if (_ptr_driver_path) { + NDR_PULL_ALLOC(ndr, r->driver_path); +@@ -12030,7 +12030,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file)); + if (_ptr_data_file) { + NDR_PULL_ALLOC(ndr, r->data_file); +@@ -12042,7 +12042,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file)); + if (_ptr_config_file) { + NDR_PULL_ALLOC(ndr, r->config_file); +@@ -12060,7 +12060,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12075,7 +12075,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->architecture) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12090,7 +12090,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_path) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12105,7 +12105,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12120,7 +12120,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->config_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12190,61 +12190,61 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files)); + ndr->flags = _flags_save_string_array; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names)); + ndr->flags = _flags_save_string_array; + } +@@ -12252,25 +12252,25 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider)); + ndr->flags = _flags_save_string; + } +@@ -12279,7 +12279,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name)); +@@ -12289,7 +12289,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->architecture) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture)); +@@ -12299,7 +12299,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_path) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path)); +@@ -12309,7 +12309,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file)); +@@ -12319,7 +12319,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->config_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file)); +@@ -12329,7 +12329,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->help_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file)); +@@ -12339,7 +12339,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->dependent_files) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files)); + NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files)); +@@ -12349,7 +12349,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->monitor_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name)); +@@ -12359,7 +12359,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->default_datatype) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype)); +@@ -12369,7 +12369,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->previous_names) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names)); + NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names)); +@@ -12379,7 +12379,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->manufacturer_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name)); +@@ -12389,7 +12389,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->manufacturer_url) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url)); +@@ -12399,7 +12399,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->hardware_id) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id)); +@@ -12409,7 +12409,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->provider) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider)); +@@ -12456,7 +12456,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name)); + if (_ptr_driver_name) { + NDR_PULL_ALLOC(ndr, r->driver_name); +@@ -12468,7 +12468,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture)); + if (_ptr_architecture) { + NDR_PULL_ALLOC(ndr, r->architecture); +@@ -12480,7 +12480,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path)); + if (_ptr_driver_path) { + NDR_PULL_ALLOC(ndr, r->driver_path); +@@ -12492,7 +12492,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file)); + if (_ptr_data_file) { + NDR_PULL_ALLOC(ndr, r->data_file); +@@ -12504,7 +12504,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file)); + if (_ptr_config_file) { + NDR_PULL_ALLOC(ndr, r->config_file); +@@ -12516,7 +12516,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file)); + if (_ptr_help_file) { + NDR_PULL_ALLOC(ndr, r->help_file); +@@ -12528,7 +12528,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files)); + if (_ptr_dependent_files) { + NDR_PULL_ALLOC(ndr, r->dependent_files); +@@ -12540,7 +12540,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name)); + if (_ptr_monitor_name) { + NDR_PULL_ALLOC(ndr, r->monitor_name); +@@ -12552,7 +12552,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype)); + if (_ptr_default_datatype) { + NDR_PULL_ALLOC(ndr, r->default_datatype); +@@ -12564,7 +12564,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names)); + if (_ptr_previous_names) { + NDR_PULL_ALLOC(ndr, r->previous_names); +@@ -12578,7 +12578,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name)); + if (_ptr_manufacturer_name) { + NDR_PULL_ALLOC(ndr, r->manufacturer_name); +@@ -12590,7 +12590,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url)); + if (_ptr_manufacturer_url) { + NDR_PULL_ALLOC(ndr, r->manufacturer_url); +@@ -12602,7 +12602,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id)); + if (_ptr_hardware_id) { + NDR_PULL_ALLOC(ndr, r->hardware_id); +@@ -12614,7 +12614,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider)); + if (_ptr_provider) { + NDR_PULL_ALLOC(ndr, r->provider); +@@ -12629,7 +12629,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12644,7 +12644,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->architecture) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12659,7 +12659,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_path) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12674,7 +12674,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12689,7 +12689,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->config_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12704,7 +12704,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->help_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12719,7 +12719,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->dependent_files) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12734,7 +12734,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->monitor_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12749,7 +12749,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->default_datatype) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12764,7 +12764,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->previous_names) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12779,7 +12779,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->manufacturer_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12794,7 +12794,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->manufacturer_url) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12809,7 +12809,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->hardware_id) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12824,7 +12824,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->provider) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -12948,19 +12948,19 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo7(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->install_source_root)); + ndr->flags = _flags_save_string; + } +@@ -12969,7 +12969,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo7(struct ndr_push *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name)); +@@ -12979,7 +12979,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo7(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->inf_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_name)); +@@ -12989,7 +12989,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo7(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->install_source_root) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->install_source_root)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->install_source_root)); +@@ -13015,7 +13015,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name)); + if (_ptr_driver_name) { + NDR_PULL_ALLOC(ndr, r->driver_name); +@@ -13027,7 +13027,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_name)); + if (_ptr_inf_name) { + NDR_PULL_ALLOC(ndr, r->inf_name); +@@ -13039,7 +13039,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_install_source_root)); + if (_ptr_install_source_root) { + NDR_PULL_ALLOC(ndr, r->install_source_root); +@@ -13054,7 +13054,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13069,7 +13069,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->inf_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13084,7 +13084,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->install_source_root) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13140,61 +13140,61 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files)); + ndr->flags = _flags_save_string_array; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names)); + ndr->flags = _flags_save_string_array; + } +@@ -13202,56 +13202,56 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles)); + ndr->flags = _flags_save_string_array; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path)); + ndr->flags = _flags_save_string; + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes)); + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies)); + ndr->flags = _flags_save_string_array; + } +@@ -13262,7 +13262,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name)); +@@ -13272,7 +13272,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->architecture) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture)); +@@ -13282,7 +13282,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_path) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path)); +@@ -13292,7 +13292,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file)); +@@ -13302,7 +13302,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->config_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file)); +@@ -13312,7 +13312,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->help_file) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file)); +@@ -13322,7 +13322,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->dependent_files) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files)); + NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files)); +@@ -13332,7 +13332,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->monitor_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name)); +@@ -13342,7 +13342,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->default_datatype) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype)); +@@ -13352,7 +13352,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->previous_names) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names)); + NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names)); +@@ -13362,7 +13362,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->manufacturer_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name)); +@@ -13372,7 +13372,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->manufacturer_url) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url)); +@@ -13382,7 +13382,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->hardware_id) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id)); +@@ -13392,7 +13392,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->provider) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider)); +@@ -13402,7 +13402,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->print_processor) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor)); +@@ -13412,7 +13412,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->vendor_setup) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->vendor_setup)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup)); +@@ -13422,7 +13422,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->color_profiles) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->color_profiles)); + NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles)); +@@ -13432,7 +13432,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->inf_path) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_path)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path)); +@@ -13442,7 +13442,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->core_driver_dependencies) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->core_driver_dependencies)); + NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies)); +@@ -13499,7 +13499,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name)); + if (_ptr_driver_name) { + NDR_PULL_ALLOC(ndr, r->driver_name); +@@ -13511,7 +13511,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture)); + if (_ptr_architecture) { + NDR_PULL_ALLOC(ndr, r->architecture); +@@ -13523,7 +13523,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path)); + if (_ptr_driver_path) { + NDR_PULL_ALLOC(ndr, r->driver_path); +@@ -13535,7 +13535,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file)); + if (_ptr_data_file) { + NDR_PULL_ALLOC(ndr, r->data_file); +@@ -13547,7 +13547,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file)); + if (_ptr_config_file) { + NDR_PULL_ALLOC(ndr, r->config_file); +@@ -13559,7 +13559,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file)); + if (_ptr_help_file) { + NDR_PULL_ALLOC(ndr, r->help_file); +@@ -13571,7 +13571,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files)); + if (_ptr_dependent_files) { + NDR_PULL_ALLOC(ndr, r->dependent_files); +@@ -13583,7 +13583,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name)); + if (_ptr_monitor_name) { + NDR_PULL_ALLOC(ndr, r->monitor_name); +@@ -13595,7 +13595,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype)); + if (_ptr_default_datatype) { + NDR_PULL_ALLOC(ndr, r->default_datatype); +@@ -13607,7 +13607,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names)); + if (_ptr_previous_names) { + NDR_PULL_ALLOC(ndr, r->previous_names); +@@ -13621,7 +13621,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name)); + if (_ptr_manufacturer_name) { + NDR_PULL_ALLOC(ndr, r->manufacturer_name); +@@ -13633,7 +13633,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url)); + if (_ptr_manufacturer_url) { + NDR_PULL_ALLOC(ndr, r->manufacturer_url); +@@ -13645,7 +13645,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id)); + if (_ptr_hardware_id) { + NDR_PULL_ALLOC(ndr, r->hardware_id); +@@ -13657,7 +13657,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider)); + if (_ptr_provider) { + NDR_PULL_ALLOC(ndr, r->provider); +@@ -13669,7 +13669,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor)); + if (_ptr_print_processor) { + NDR_PULL_ALLOC(ndr, r->print_processor); +@@ -13681,7 +13681,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup)); + if (_ptr_vendor_setup) { + NDR_PULL_ALLOC(ndr, r->vendor_setup); +@@ -13693,7 +13693,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles)); + if (_ptr_color_profiles) { + NDR_PULL_ALLOC(ndr, r->color_profiles); +@@ -13705,7 +13705,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path)); + if (_ptr_inf_path) { + NDR_PULL_ALLOC(ndr, r->inf_path); +@@ -13718,7 +13718,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes)); + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies)); + if (_ptr_core_driver_dependencies) { + NDR_PULL_ALLOC(ndr, r->core_driver_dependencies); +@@ -13735,7 +13735,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13750,7 +13750,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->architecture) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13765,7 +13765,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->driver_path) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13780,7 +13780,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->data_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13795,7 +13795,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->config_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13810,7 +13810,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->help_file) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13825,7 +13825,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->dependent_files) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13840,7 +13840,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->monitor_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13855,7 +13855,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->default_datatype) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13870,7 +13870,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->previous_names) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13885,7 +13885,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->manufacturer_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13900,7 +13900,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->manufacturer_url) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13915,7 +13915,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->hardware_id) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13930,7 +13930,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->provider) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13945,7 +13945,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->print_processor) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13960,7 +13960,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->vendor_setup) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13975,7 +13975,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->color_profiles) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -13990,7 +13990,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->inf_path) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -14005,7 +14005,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, in + } + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->core_driver_dependencies) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -14188,7 +14188,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name)); + ndr->flags = _flags_save_string; + } +@@ -14199,7 +14199,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->file_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->file_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name)); +@@ -14219,7 +14219,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name)); + if (_ptr_file_name) { + NDR_PULL_ALLOC(ndr, r->file_name); +@@ -14236,7 +14236,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->file_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -14659,7 +14659,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push + NDR_CHECK(ndr_push_align(ndr, 4)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name)); + ndr->flags = _flags_save_string; + } +@@ -14676,7 +14676,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull + NDR_CHECK(ndr_pull_align(ndr, 4)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name)); + ndr->flags = _flags_save_string; + } +@@ -14818,7 +14818,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name)); + ndr->flags = _flags_save_string; + } +@@ -14827,7 +14827,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->print_processor_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name)); +@@ -14847,7 +14847,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name)); + if (_ptr_print_processor_name) { + NDR_PULL_ALLOC(ndr, r->print_processor_name); +@@ -14862,7 +14862,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->print_processor_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -15004,7 +15004,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct + NDR_CHECK(ndr_push_align(ndr, 4)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name)); + ndr->flags = _flags_save_string; + } +@@ -15021,7 +15021,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct + NDR_CHECK(ndr_pull_align(ndr, 4)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name)); + ndr->flags = _flags_save_string; + } +@@ -15427,7 +15427,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + { + struct ndr_push *_ndr_extra_string; + NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256)); +@@ -15454,7 +15454,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + { + struct ndr_pull *_ndr_extra_string; + NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256)); +@@ -15499,7 +15499,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + { + struct ndr_push *_ndr_extra_string; + NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256)); +@@ -15531,7 +15531,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + { + struct ndr_pull *_ndr_extra_string; + NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256)); +@@ -15587,7 +15587,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, in + case REG_SZ: { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string)); + ndr->flags = _flags_save_string; + } +@@ -15609,7 +15609,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, in + case REG_MULTI_SZ: { + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array)); + ndr->flags = _flags_save_string_array; + } +@@ -15665,7 +15665,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, in + case REG_SZ: { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string)); + ndr->flags = _flags_save_string; + } +@@ -15687,7 +15687,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, in + case REG_MULTI_SZ: { + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array)); + ndr->flags = _flags_save_string_array; + } +@@ -15870,7 +15870,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int + NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name)); + ndr->flags = _flags_save_string; + } +@@ -15881,7 +15881,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->form_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name)); +@@ -15902,7 +15902,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int + NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name)); + if (_ptr_form_name) { + NDR_PULL_ALLOC(ndr, r->form_name); +@@ -15919,7 +15919,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->form_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -15988,7 +15988,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int + NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name)); + ndr->flags = _flags_save_string; + } +@@ -16003,14 +16003,14 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int + NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll)); + ndr->flags = _flags_save_string; + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name)); + ndr->flags = _flags_save_string; + } +@@ -16021,7 +16021,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->form_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name)); +@@ -16041,7 +16041,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->mui_dll) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->mui_dll)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll)); +@@ -16051,7 +16051,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->display_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->display_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name)); +@@ -16078,7 +16078,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int + NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name)); + if (_ptr_form_name) { + NDR_PULL_ALLOC(ndr, r->form_name); +@@ -16105,7 +16105,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int + NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll)); + if (_ptr_mui_dll) { + NDR_PULL_ALLOC(ndr, r->mui_dll); +@@ -16118,7 +16118,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name)); + if (_ptr_display_name) { + NDR_PULL_ALLOC(ndr, r->display_name); +@@ -16135,7 +16135,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->form_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -16165,7 +16165,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->mui_dll) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -16180,7 +16180,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->display_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -16762,7 +16762,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name)); + ndr->flags = _flags_save_string; + } +@@ -16771,7 +16771,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->port_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name)); +@@ -16791,7 +16791,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name)); + if (_ptr_port_name) { + NDR_PULL_ALLOC(ndr, r->port_name); +@@ -16806,7 +16806,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->port_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -16872,19 +16872,19 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description)); + ndr->flags = _flags_save_string; + } +@@ -16895,7 +16895,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->port_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name)); +@@ -16905,7 +16905,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->monitor_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name)); +@@ -16915,7 +16915,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->description) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description)); +@@ -16939,7 +16939,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name)); + if (_ptr_port_name) { + NDR_PULL_ALLOC(ndr, r->port_name); +@@ -16951,7 +16951,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name)); + if (_ptr_monitor_name) { + NDR_PULL_ALLOC(ndr, r->monitor_name); +@@ -16963,7 +16963,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description)); + if (_ptr_description) { + NDR_PULL_ALLOC(ndr, r->description); +@@ -16980,7 +16980,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->port_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -16995,7 +16995,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->monitor_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -17010,7 +17010,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->description) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -17128,7 +17128,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int + NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string)); + ndr->flags = _flags_save_string; + } +@@ -17138,7 +17138,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->status_string) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->status_string)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string)); +@@ -17159,7 +17159,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int + NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string)); + if (_ptr_status_string) { + NDR_PULL_ALLOC(ndr, r->status_string); +@@ -17175,7 +17175,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->status_string) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -17218,7 +17218,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name)); + ndr->flags = _flags_save_string; + } +@@ -17228,7 +17228,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->port_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name)); +@@ -17248,7 +17248,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name)); + if (_ptr_port_name) { + NDR_PULL_ALLOC(ndr, r->port_name); +@@ -17264,7 +17264,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->port_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -17479,7 +17479,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, i + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name)); + ndr->flags = _flags_save_string; + } +@@ -17488,7 +17488,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->monitor_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name)); +@@ -17508,7 +17508,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, i + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name)); + if (_ptr_monitor_name) { + NDR_PULL_ALLOC(ndr, r->monitor_name); +@@ -17523,7 +17523,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->monitor_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -17564,19 +17564,19 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, i + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name)); + ndr->flags = _flags_save_string; + } +@@ -17585,7 +17585,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->monitor_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name)); +@@ -17595,7 +17595,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->environment) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->environment)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment)); +@@ -17605,7 +17605,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->dll_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dll_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name)); +@@ -17629,7 +17629,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, i + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name)); + if (_ptr_monitor_name) { + NDR_PULL_ALLOC(ndr, r->monitor_name); +@@ -17641,7 +17641,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment)); + if (_ptr_environment) { + NDR_PULL_ALLOC(ndr, r->environment); +@@ -17653,7 +17653,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name)); + if (_ptr_dll_name) { + NDR_PULL_ALLOC(ndr, r->dll_name); +@@ -17668,7 +17668,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->monitor_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -17683,7 +17683,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->environment) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -17698,7 +17698,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->dll_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -17876,7 +17876,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_p + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array)); + ndr->flags = _flags_save_string; + } +@@ -17885,7 +17885,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_p + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->name_array) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name_array)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array)); +@@ -17905,7 +17905,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_p + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array)); + if (_ptr_name_array) { + NDR_PULL_ALLOC(ndr, r->name_array); +@@ -17920,7 +17920,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_p + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->name_array) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -19526,7 +19526,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *n + NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name)); + ndr->flags = _flags_save_string; + } +@@ -19534,18 +19534,18 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *n + NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type)); + { + uint32_t _flags_save_DATA_BLOB = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type)); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data)); + ndr->flags = _flags_save_DATA_BLOB; + } +- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data->length)); ++ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data?r->data->length:0)); + NDR_CHECK(ndr_push_trailer_align(ndr, 5)); + } + if (ndr_flags & NDR_BUFFERS) { + NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->value_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->value_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name)); +@@ -19555,14 +19555,14 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *n + } + { + uint32_t _flags_save_DATA_BLOB = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type)); + if (r->data) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data)); + { + struct ndr_push *_ndr_data; +- NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data->length)); ++ NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data?r->data->length:0)); + NDR_CHECK(ndr_push_DATA_BLOB(_ndr_data, NDR_SCALARS, *r->data)); +- NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data->length)); ++ NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data?r->data->length:0)); + } + NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data)); + } +@@ -19585,7 +19585,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *n + NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name)); + if (_ptr_value_name) { + NDR_PULL_ALLOC(ndr, r->value_name); +@@ -19599,7 +19599,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *n + NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type)); + { + uint32_t _flags_save_DATA_BLOB = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data)); + if (_ptr_data) { + NDR_PULL_ALLOC(ndr, r->data); +@@ -19616,7 +19616,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *n + NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->value_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -19631,7 +19631,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *n + } + { + uint32_t _flags_save_DATA_BLOB = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type)); + if (r->data) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -19672,7 +19672,7 @@ _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const c + ndr_print_DATA_BLOB(ndr, "data", *r->data); + } + ndr->depth--; +- ndr_print_uint32(ndr, "data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->data->length:r->data_length); ++ ndr_print_uint32(ndr, "data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->data?r->data->length:0:r->data_length); + ndr->depth--; + } + +@@ -19696,7 +19696,7 @@ static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr + default: { + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array)); + ndr->flags = _flags_save_string_array; + } +@@ -19737,7 +19737,7 @@ static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr + default: { + { + uint32_t _flags_save_string_array = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array)); + ndr->flags = _flags_save_string_array; + } +@@ -19980,7 +19980,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int + NDR_CHECK(ndr_push_align(ndr, 4)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name)); + ndr->flags = _flags_save_string; + } +@@ -19997,7 +19997,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int + NDR_CHECK(ndr_pull_align(ndr, 4)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name)); + ndr->flags = _flags_save_string; + } +diff --git a/librpc/gen_ndr/ndr_svcctl.c b/librpc/gen_ndr/ndr_svcctl.c +index a1cb7c7..e67d793 100644 +--- a/librpc/gen_ndr/ndr_svcctl.c ++++ b/librpc/gen_ndr/ndr_svcctl.c +@@ -226,13 +226,13 @@ _PUBLIC_ enum ndr_err_code ndr_push_ENUM_SERVICE_STATUSW(struct ndr_push *ndr, i + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->service_name)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name)); + ndr->flags = _flags_save_string; + } +@@ -242,7 +242,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_ENUM_SERVICE_STATUSW(struct ndr_push *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->service_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->service_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->service_name)); +@@ -252,7 +252,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_ENUM_SERVICE_STATUSW(struct ndr_push *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->display_name) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->display_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name)); +@@ -274,7 +274,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_ENUM_SERVICE_STATUSW(struct ndr_pull *ndr, i + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_service_name)); + if (_ptr_service_name) { + NDR_PULL_ALLOC(ndr, r->service_name); +@@ -286,7 +286,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_ENUM_SERVICE_STATUSW(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name)); + if (_ptr_display_name) { + NDR_PULL_ALLOC(ndr, r->display_name); +@@ -302,7 +302,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_ENUM_SERVICE_STATUSW(struct ndr_pull *ndr, i + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->service_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -317,7 +317,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_ENUM_SERVICE_STATUSW(struct ndr_pull *ndr, i + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->display_name) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1016,7 +1016,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_SERVICE_DESCRIPTION(struct ndr_push *ndr, in + NDR_CHECK(ndr_push_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description)); + ndr->flags = _flags_save_string; + } +@@ -1025,7 +1025,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_SERVICE_DESCRIPTION(struct ndr_push *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->description) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description)); +@@ -1045,7 +1045,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_SERVICE_DESCRIPTION(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_align(ndr, 5)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description)); + if (_ptr_description) { + NDR_PULL_ALLOC(ndr, r->description); +@@ -1060,7 +1060,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_SERVICE_DESCRIPTION(struct ndr_pull *ndr, in + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->description) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1165,13 +1165,13 @@ _PUBLIC_ enum ndr_err_code ndr_push_SERVICE_FAILURE_ACTIONS(struct ndr_push *ndr + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reset_period)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->rebootmsg)); + ndr->flags = _flags_save_string; + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_push_relative_ptr1(ndr, r->command)); + ndr->flags = _flags_save_string; + } +@@ -1182,7 +1182,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_SERVICE_FAILURE_ACTIONS(struct ndr_push *ndr + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->rebootmsg) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->rebootmsg)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->rebootmsg)); +@@ -1192,7 +1192,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_SERVICE_FAILURE_ACTIONS(struct ndr_push *ndr + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->command) { + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->command)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->command)); +@@ -1227,7 +1227,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_SERVICE_FAILURE_ACTIONS(struct ndr_pull *ndr + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reset_period)); + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rebootmsg)); + if (_ptr_rebootmsg) { + NDR_PULL_ALLOC(ndr, r->rebootmsg); +@@ -1239,7 +1239,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_SERVICE_FAILURE_ACTIONS(struct ndr_pull *ndr + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_command)); + if (_ptr_command) { + NDR_PULL_ALLOC(ndr, r->command); +@@ -1265,7 +1265,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_SERVICE_FAILURE_ACTIONS(struct ndr_pull *ndr + if (ndr_flags & NDR_BUFFERS) { + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->rebootmsg) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +@@ -1280,7 +1280,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_SERVICE_FAILURE_ACTIONS(struct ndr_pull *ndr + } + { + uint32_t _flags_save_string = ndr->flags; +- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); ++ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2); + if (r->command) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; +diff --git a/librpc/gen_ndr/netlogon.h b/librpc/gen_ndr/netlogon.h +index 268790e..207bc2c 100644 +--- a/librpc/gen_ndr/netlogon.h ++++ b/librpc/gen_ndr/netlogon.h +@@ -800,7 +800,7 @@ enum SyncStateEnum + + union netr_ChangeLogObject { + struct dom_sid object_sid;/* [case(NETR_CHANGELOG_SID_INCLUDED)] */ +- const char * object_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM),case(NETR_CHANGELOG_NAME_INCLUDED)] */ ++ const char * object_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2),case(NETR_CHANGELOG_NAME_INCLUDED)] */ + }/* [nodiscriminant] */; + + struct netr_ChangeLogEntry { +@@ -931,7 +931,7 @@ struct netr_OsVersionInfoEx { + uint32_t MinorVersion; + uint32_t BuildNumber; + uint32_t PlatformId; +- const char * CSDVersion;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * CSDVersion;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint16_t ServicePackMajor; + uint16_t ServicePackMinor; + uint16_t SuiteMask; +diff --git a/librpc/gen_ndr/spoolss.h b/librpc/gen_ndr/spoolss.h +index fc7114a..ef8c63e 100644 +--- a/librpc/gen_ndr/spoolss.h ++++ b/librpc/gen_ndr/spoolss.h +@@ -244,8 +244,8 @@ enum spoolss_MinorVersion + #define JOB_STATUS_COMPLETE ( 0x00001000 ) + + struct spoolss_PrinterInfo0 { +- const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t cjobs; + uint32_t total_jobs; + uint32_t total_bytes; +@@ -804,24 +804,24 @@ struct spoolss_DeviceMode { + + struct spoolss_PrinterInfo1 { + uint32_t flags; +- const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * comment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * comment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + struct spoolss_PrinterInfo2 { +- const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * sharename;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * portname;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * drivername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * comment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * location;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * sharename;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * portname;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * drivername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * comment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * location;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */ +- const char * sepfile;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * printprocessor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * sepfile;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * printprocessor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + struct spoolss_security_descriptor *secdesc;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */ + uint32_t attributes; + uint32_t priority;/* [range(0,99)] */ +@@ -838,14 +838,14 @@ struct spoolss_PrinterInfo3 { + }/* [gensize,public] */; + + struct spoolss_PrinterInfo4 { +- const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t attributes; + }/* [gensize,public] */; + + struct spoolss_PrinterInfo5 { +- const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * portname;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * portname;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t attributes; + uint32_t device_not_selected_timeout; + uint32_t transmission_retry_timeout; +@@ -863,7 +863,7 @@ struct spoolss_PrinterInfo6 { + #define DSPRINT_PENDING ( 0x80000000 ) + + struct spoolss_PrinterInfo7 { +- const char * guid;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * guid;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t action; + }/* [gensize,public] */; + +@@ -891,12 +891,12 @@ struct spoolss_DevmodeContainer { + + struct spoolss_JobInfo1 { + uint32_t job_id; +- const char * printer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * server_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * user_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * document_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * printer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * server_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * user_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * document_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t status; + uint32_t priority;/* [range(0,99)] */ + uint32_t position; +@@ -907,17 +907,17 @@ struct spoolss_JobInfo1 { + + struct spoolss_JobInfo2 { + uint32_t job_id; +- const char * printer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * server_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * user_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * document_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * notify_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * printer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * server_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * user_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * document_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * notify_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */ +- const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + struct spoolss_security_descriptor *secdesc;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */ + uint32_t status; + uint32_t priority;/* [range(0,99)] */ +@@ -939,17 +939,17 @@ struct spoolss_JobInfo3 { + + struct spoolss_JobInfo4 { + uint32_t job_id; +- const char * printer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * server_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * user_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * document_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * notify_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * printer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * server_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * user_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * document_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * notify_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */ +- const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + struct spoolss_security_descriptor *secdesc;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */ + uint32_t status; + uint32_t priority;/* [range(0,99)] */ +@@ -1216,7 +1216,7 @@ struct spoolss_SetPrinterInfoCtr { + + struct spoolss_StringArray { + uint32_t _ndr_size;/* [value((ndr_size_spoolss_StringArray(r,ndr->iconv_convenience,ndr->flags)-4)/2)] */ +- const char ** string;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char ** string;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [public] */; + + struct spoolss_AddDriverInfo1 { +@@ -1363,52 +1363,52 @@ struct spoolss_AddDriverInfoCtr { + }; + + struct spoolss_DriverInfo1 { +- const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + struct spoolss_DriverInfo2 { + enum spoolss_DriverOSVersion version; +- const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + struct spoolss_DriverInfo3 { + enum spoolss_DriverOSVersion version; +- const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + struct spoolss_DriverInfo4 { + enum spoolss_DriverOSVersion version; +- const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + struct spoolss_DriverInfo5 { + enum spoolss_DriverOSVersion version; +- const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t driver_attributes; + uint32_t config_version; + uint32_t driver_version; +@@ -1416,56 +1416,56 @@ struct spoolss_DriverInfo5 { + + struct spoolss_DriverInfo6 { + enum spoolss_DriverOSVersion version; +- const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + NTTIME driver_date; + uint64_t driver_version; +- const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + struct spoolss_DriverInfo7 { + uint32_t size; + enum spoolss_DriverOSVersion version; +- const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * inf_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * install_source_root;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * inf_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * install_source_root;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + struct spoolss_DriverInfo8 { + enum spoolss_DriverOSVersion version; +- const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + NTTIME driver_date; + uint64_t driver_version; +- const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * vendor_setup;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char ** color_profiles;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * inf_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * vendor_setup;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char ** color_profiles;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * inf_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t printer_driver_attributes; +- const char ** core_driver_dependencies;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char ** core_driver_dependencies;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + NTTIME min_inbox_driver_ver_date; + uint64_t min_inbox_driver_ver_version; + }/* [gensize,public] */; +@@ -1490,26 +1490,26 @@ enum spoolss_DriverFileType + ; + + struct spoolss_DriverFileInfo { +- const char * file_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * file_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + enum spoolss_DriverFileType file_type; + uint32_t file_version; + }/* [public] */; + + struct spoolss_DriverInfo101 { + enum spoolss_DriverOSVersion version; +- const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- struct spoolss_DriverFileInfo *file_info;/* [relative,size_is(file_count)] */ ++ const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ struct spoolss_DriverFileInfo *file_info;/* [relative,flag(LIBNDR_FLAG_ALIGN4),size_is(file_count)] */ + uint32_t file_count; +- const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + NTTIME driver_date; + uint64_t driver_version; +- const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,nopush,public,nopull] */; + + union spoolss_DriverInfo { +@@ -1525,7 +1525,7 @@ union spoolss_DriverInfo { + }/* [gensize,relative_base,nodiscriminant,public,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */; + + struct spoolss_DriverDirectoryInfo1 { +- const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + union spoolss_DriverDirectoryInfo { +@@ -1533,7 +1533,7 @@ union spoolss_DriverDirectoryInfo { + }/* [gensize,relative_base,nodiscriminant,public,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */; + + struct spoolss_PrintProcessorInfo1 { +- const char * print_processor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * print_processor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + union spoolss_PrintProcessorInfo { +@@ -1541,7 +1541,7 @@ union spoolss_PrintProcessorInfo { + }/* [relative_base,public,nodiscriminant,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */; + + struct spoolss_PrintProcessorDirectoryInfo1 { +- const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + union spoolss_PrintProcessorDirectoryInfo { +@@ -1564,7 +1564,7 @@ struct spoolss_OSVersion { + uint32_t minor; + uint32_t build; + uint32_t platform_id;/* [value(2)] */ +- const char * extra_string;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * extra_string;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + struct spoolss_OSVersionEx { +@@ -1573,7 +1573,7 @@ struct spoolss_OSVersionEx { + uint32_t minor; + uint32_t build; + uint32_t platform_id;/* [value(2)] */ +- const char * extra_string;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * extra_string;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint16_t service_pack_major; + uint16_t service_pack_minor; + uint16_t suite_mask; +@@ -1582,10 +1582,10 @@ struct spoolss_OSVersionEx { + }/* [gensize,public] */; + + union spoolss_PrinterData { +- const char * string;/* [flag(LIBNDR_FLAG_STR_NULLTERM),case(REG_SZ)] */ ++ const char * string;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2),case(REG_SZ)] */ + DATA_BLOB binary;/* [flag(LIBNDR_FLAG_REMAINING),case(REG_BINARY)] */ + uint32_t value;/* [case(REG_DWORD)] */ +- const char ** string_array;/* [flag(LIBNDR_FLAG_STR_NULLTERM),case(REG_MULTI_SZ)] */ ++ const char ** string_array;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2),case(REG_MULTI_SZ)] */ + DATA_BLOB data;/* [flag(LIBNDR_FLAG_REMAINING),default] */ + }/* [nodiscriminant,public] */; + +@@ -1618,7 +1618,7 @@ struct spoolss_FormArea { + + struct spoolss_FormInfo1 { + enum spoolss_FormFlags flags; +- const char * form_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * form_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + struct spoolss_FormSize size; + struct spoolss_FormArea area; + }/* [gensize,public] */; +@@ -1630,14 +1630,14 @@ struct spoolss_FormInfo1 { + + struct spoolss_FormInfo2 { + enum spoolss_FormFlags flags; +- const char * form_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * form_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + struct spoolss_FormSize size; + struct spoolss_FormArea area; + const char * keyword;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */ + uint32_t string_type; +- const char * mui_dll;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * mui_dll;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t ressource_id; +- const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint16_t lang_id; + uint16_t unused; + }/* [gensize,public] */; +@@ -1673,7 +1673,7 @@ union spoolss_AddFormInfo { + }/* [switch_type(uint32)] */; + + struct spoolss_PortInfo1 { +- const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + /* bitmap spoolss_PortType */ +@@ -1683,9 +1683,9 @@ struct spoolss_PortInfo1 { + #define SPOOLSS_PORT_TYPE_NET_ATTACHED ( 0x00000008 ) + + struct spoolss_PortInfo2 { +- const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t port_type; + uint32_t reserved; + }/* [gensize,public] */; +@@ -1742,12 +1742,12 @@ enum spoolss_PortSeverity + + struct spoolss_PortInfo3 { + enum spoolss_PortStatus status; +- const char * status_string;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * status_string;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + enum spoolss_PortSeverity severity; + }/* [gensize,public] */; + + struct spoolss_PortInfoFF { +- const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + DATA_BLOB monitor_data; + }/* [gensize,public] */; + +@@ -1759,13 +1759,13 @@ union spoolss_PortInfo { + }/* [relative_base,public,nodiscriminant,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */; + + struct spoolss_MonitorInfo1 { +- const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + struct spoolss_MonitorInfo2 { +- const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * environment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * dll_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * environment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * dll_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + union spoolss_MonitorInfo { +@@ -1774,7 +1774,7 @@ union spoolss_MonitorInfo { + }/* [relative_base,public,nodiscriminant,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */; + + struct spoolss_PrintProcDataTypesInfo1 { +- const char * name_array;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * name_array;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + union spoolss_PrintProcDataTypesInfo { +@@ -2065,15 +2065,15 @@ struct spoolss_UserLevelCtr { + #define JOB_ACCESS_READ ( 0x00000020 ) + + struct spoolss_PrinterEnumValues { +- const char * value_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * value_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t value_name_len;/* [value(2*strlen_m_term(value_name))] */ + enum winreg_Type type; +- DATA_BLOB *data;/* [relative,subcontext_size(data_length),subcontext(0),flag(LIBNDR_FLAG_REMAINING)] */ +- uint32_t data_length;/* [value(data->length)] */ ++ DATA_BLOB *data;/* [relative,subcontext_size(data_length),subcontext(0),flag(LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type))] */ ++ uint32_t data_length;/* [value(data?data->length:0)] */ + }/* [relative_base,gensize,public] */; + + union spoolss_KeyNames { +- const char ** string_array;/* [default,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char ** string_array;/* [default,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [nodiscriminant] */; + + /* bitmap spoolss_DeleteDriverFlags */ +@@ -2130,7 +2130,7 @@ struct spoolss_PortData2 { + }/* [public] */; + + struct spoolss_MonitorUi { +- const char * dll_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * dll_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [public] */; + + /* bitmap spoolss_AddPrinterDriverExFlags */ +diff --git a/librpc/gen_ndr/svcctl.h b/librpc/gen_ndr/svcctl.h +index f047701..466a4d3 100644 +--- a/librpc/gen_ndr/svcctl.h ++++ b/librpc/gen_ndr/svcctl.h +@@ -87,8 +87,8 @@ struct SERVICE_STATUS_PROCESS { + }/* [public] */; + + struct ENUM_SERVICE_STATUSW { +- const char * service_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * service_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + struct SERVICE_STATUS status; + }/* [gensize,public] */; + +@@ -246,7 +246,7 @@ enum svcctl_ConfigLevel + ; + + struct SERVICE_DESCRIPTION { +- const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + }/* [gensize,public] */; + + enum SC_ACTION_TYPE +@@ -273,8 +273,8 @@ struct SC_ACTION { + + struct SERVICE_FAILURE_ACTIONS { + uint32_t reset_period; +- const char * rebootmsg;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ +- const char * command;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ ++ const char * rebootmsg;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ ++ const char * command;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ + uint32_t num_actions;/* [range(0,1024)] */ + struct SC_ACTION *actions;/* [relative,size_is(num_actions)] */ + }/* [gensize,public] */; +-- +1.7.4.1 + diff -Nru samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0002-spoolss-fix-potential-crash-bug-in-spoolss_PrinterEn.patch samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0002-spoolss-fix-potential-crash-bug-in-spoolss_PrinterEn.patch --- samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0002-spoolss-fix-potential-crash-bug-in-spoolss_PrinterEn.patch 1970-01-01 01:00:00.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0002-spoolss-fix-potential-crash-bug-in-spoolss_PrinterEn.patch 2011-03-13 07:56:44.000000000 +0100 @@ -0,0 +1,32 @@ +From a8637bb7b2e49274db3e66ce1b24d86952fe48ac Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org> +Date: Mon, 2 Aug 2010 15:52:09 +0200 +Subject: [PATCH 2/9] spoolss: fix potential crash bug in spoolss_PrinterEnumValues push path. + +Guenther +(cherry picked from commit 45952b56797982d27731b20d97f5648c9414814a) +(cherry picked from commit ad68e45b505331683a2510de20f113a7c20e68e1) + +Signed-off-by: Stefan Metzmacher <metze@samba.org> +(cherry picked from commit 5a660f3f15e1e04d556b34b9e49e7177193df026) +(cherry picked from commit cdcc2ba83c2e4a1f5ca5da870dc673e7e2507d23) +--- + librpc/idl/spoolss.idl | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl +index bfaca4a..44839be 100644 +--- a/librpc/idl/spoolss.idl ++++ b/librpc/idl/spoolss.idl +@@ -2551,7 +2551,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor") + [value(2*strlen_m_term(value_name))] uint32 value_name_len; + winreg_Type type; + [relative,subcontext(0),subcontext_size(data_length),flag(NDR_REMAINING)] DATA_BLOB *data; +- [value(data->length)] uint32 data_length; ++ [value(data ? data->length : 0)] uint32 data_length; + } spoolss_PrinterEnumValues; + + [public,noopnum,noprint] WERROR _spoolss_EnumPrinterDataEx( +-- +1.7.4.1 + diff -Nru samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0003-spoolss-pretty-print-a-struct-spoolss_Time.patch samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0003-spoolss-pretty-print-a-struct-spoolss_Time.patch --- samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0003-spoolss-pretty-print-a-struct-spoolss_Time.patch 1970-01-01 01:00:00.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0003-spoolss-pretty-print-a-struct-spoolss_Time.patch 2011-03-13 07:56:44.000000000 +0100 @@ -0,0 +1,121 @@ +From 7a83d0428a097c5b35019a262dad1b22e3ff4b26 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org> +Date: Thu, 22 Apr 2010 11:42:45 +0200 +Subject: [PATCH 3/9] spoolss: pretty-print a struct spoolss_Time. + +Guenther +(cherry picked from commit 440075247d11a7852d8567753f426fa67f41d875) + +Signed-off-by: Stefan Metzmacher <metze@samba.org> +(cherry picked from commit 0396087c36652b6c3d2bf4206212c2823352f9e0) +(cherry picked from commit 2fd1b7cb9d7908dcb02e7405a8e532fd9a9738b0) +--- + librpc/gen_ndr/ndr_spoolss.c | 15 --------------- + librpc/gen_ndr/spoolss.h | 2 +- + librpc/idl/spoolss.idl | 2 +- + librpc/ndr/ndr_spoolss_buf.c | 27 +++++++++++++++++++++++++++ + librpc/ndr/ndr_spoolss_buf.h | 1 + + 5 files changed, 30 insertions(+), 17 deletions(-) + +diff --git a/librpc/gen_ndr/ndr_spoolss.c b/librpc/gen_ndr/ndr_spoolss.c +index 41f994b..c94edef 100644 +--- a/librpc/gen_ndr/ndr_spoolss.c ++++ b/librpc/gen_ndr/ndr_spoolss.c +@@ -44,21 +44,6 @@ static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, int ndr_fla + return NDR_ERR_SUCCESS; + } + +-_PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r) +-{ +- ndr_print_struct(ndr, name, "spoolss_Time"); +- ndr->depth++; +- ndr_print_uint16(ndr, "year", r->year); +- ndr_print_uint16(ndr, "month", r->month); +- ndr_print_uint16(ndr, "day_of_week", r->day_of_week); +- ndr_print_uint16(ndr, "day", r->day); +- ndr_print_uint16(ndr, "hour", r->hour); +- ndr_print_uint16(ndr, "minute", r->minute); +- ndr_print_uint16(ndr, "second", r->second); +- ndr_print_uint16(ndr, "millisecond", r->millisecond); +- ndr->depth--; +-} +- + static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags) + { + return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic); +diff --git a/librpc/gen_ndr/spoolss.h b/librpc/gen_ndr/spoolss.h +index ef8c63e..855e701 100644 +--- a/librpc/gen_ndr/spoolss.h ++++ b/librpc/gen_ndr/spoolss.h +@@ -126,7 +126,7 @@ struct spoolss_Time { + uint16_t minute; + uint16_t second; + uint16_t millisecond; +-}/* [gensize] */; ++}/* [noprint,gensize] */; + + struct spoolss_TimeCtr { + uint32_t size;/* [value(ndr_size_spoolss_Time(time,ndr->iconv_convenience,ndr->flags))] */ +diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl +index 44839be..e0d9d2f 100644 +--- a/librpc/idl/spoolss.idl ++++ b/librpc/idl/spoolss.idl +@@ -17,7 +17,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor") + ] interface spoolss + { + typedef [v1_enum] enum winreg_Type winreg_Type; +- typedef [gensize] struct { ++ typedef [gensize,noprint] struct { + uint16 year; + uint16 month; + uint16 day_of_week; +diff --git a/librpc/ndr/ndr_spoolss_buf.c b/librpc/ndr/ndr_spoolss_buf.c +index 5aa89e4..811a8e2 100644 +--- a/librpc/ndr/ndr_spoolss_buf.c ++++ b/librpc/ndr/ndr_spoolss_buf.c +@@ -1382,3 +1382,30 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i + } + return NDR_ERR_SUCCESS; + } ++ ++_PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r) ++{ ++ struct tm tm; ++ time_t t; ++ char *str; ++ ++ tm.tm_sec = r->second; ++ tm.tm_min = r->minute; ++ tm.tm_hour = r->hour; ++ tm.tm_mday = r->day; ++ tm.tm_mon = r->month - 1; ++ tm.tm_year = r->year - 1900; ++ tm.tm_wday = r->day_of_week; ++ tm.tm_yday = 0; ++ tm.tm_isdst = -1; ++ ++ t = mktime(&tm); ++ ++ str = timestring(ndr, t); ++ ++ ndr_print_struct(ndr, name, "spoolss_Time"); ++ ndr->depth++; ++ ndr_print_string(ndr, "", str); ++ ndr->depth--; ++ talloc_free(str); ++} +diff --git a/librpc/ndr/ndr_spoolss_buf.h b/librpc/ndr/ndr_spoolss_buf.h +index 2766abb..89dcb46 100644 +--- a/librpc/ndr/ndr_spoolss_buf.h ++++ b/librpc/ndr/ndr_spoolss_buf.h +@@ -51,6 +51,7 @@ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t + void ndr_print_spoolss_security_descriptor(struct ndr_print *ndr, const char *name, const struct security_descriptor *r); + enum ndr_err_code ndr_pull_spoolss_security_descriptor(struct ndr_pull *ndr, int ndr_flags, struct security_descriptor *r); + enum ndr_err_code ndr_push_spoolss_security_descriptor(struct ndr_push *ndr, int ndr_flags, const struct security_descriptor *r); ++_PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r); + + #undef _PRINTF_ATTRIBUTE + #define _PRINTF_ATTRIBUTE(a1, a2) +-- +1.7.4.1 + diff -Nru samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0004-librpc-ndr-let-ndr_push-pull_DATA_BLOB-look-at-LIBND.patch samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0004-librpc-ndr-let-ndr_push-pull_DATA_BLOB-look-at-LIBND.patch --- samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0004-librpc-ndr-let-ndr_push-pull_DATA_BLOB-look-at-LIBND.patch 1970-01-01 01:00:00.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0004-librpc-ndr-let-ndr_push-pull_DATA_BLOB-look-at-LIBND.patch 2011-03-13 07:56:44.000000000 +0100 @@ -0,0 +1,53 @@ +From bdd325a1d2c101f065047af9b710b14d24c2cf6f Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher <metze@samba.org> +Date: Tue, 22 Feb 2011 18:19:13 +0100 +Subject: [PATCH 4/9] librpc/ndr: let ndr_push/pull_DATA_BLOB() look at LIBNDR_FLAG_REMAINING before LIBNDR_ALIGN_FLAGS + +metze +(cherry picked from commit 6c3a49ced333988b21d86e47b2b1dd1a5957e15c) +(cherry picked from commit 5f8b7f95e9ce5946f048b242dbbaa14897aea919) + +Signed-off-by: Stefan Metzmacher <metze@samba.org> +(cherry picked from commit eab30c15b2528d92e09b774be453e657020e5aa7) +(cherry picked from commit 3047e20d3b0ac89afdad3fda741f948b03e2ffdc) +--- + librpc/ndr/ndr_basic.c | 9 +++++---- + 1 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/librpc/ndr/ndr_basic.c b/librpc/ndr/ndr_basic.c +index 50a8922..f913eff 100644 +--- a/librpc/ndr/ndr_basic.c ++++ b/librpc/ndr/ndr_basic.c +@@ -1011,7 +1011,8 @@ _PUBLIC_ void ndr_print_DATA_BLOB(struct ndr_print *ndr, const char *name, DATA_ + */ + _PUBLIC_ enum ndr_err_code ndr_push_DATA_BLOB(struct ndr_push *ndr, int ndr_flags, DATA_BLOB blob) + { +- if (ndr->flags & LIBNDR_ALIGN_FLAGS) { ++ if (ndr->flags & LIBNDR_FLAG_REMAINING) { ++ } else if (ndr->flags & LIBNDR_ALIGN_FLAGS) { + if (ndr->flags & LIBNDR_FLAG_ALIGN2) { + blob.length = NDR_ALIGN(ndr, 2); + } else if (ndr->flags & LIBNDR_FLAG_ALIGN4) { +@@ -1035,7 +1036,9 @@ _PUBLIC_ enum ndr_err_code ndr_pull_DATA_BLOB(struct ndr_pull *ndr, int ndr_flag + { + uint32_t length = 0; + +- if (ndr->flags & LIBNDR_ALIGN_FLAGS) { ++ if (ndr->flags & LIBNDR_FLAG_REMAINING) { ++ length = ndr->data_size - ndr->offset; ++ } else if (ndr->flags & LIBNDR_ALIGN_FLAGS) { + if (ndr->flags & LIBNDR_FLAG_ALIGN2) { + length = NDR_ALIGN(ndr, 2); + } else if (ndr->flags & LIBNDR_FLAG_ALIGN4) { +@@ -1046,8 +1049,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_DATA_BLOB(struct ndr_pull *ndr, int ndr_flag + if (ndr->data_size - ndr->offset < length) { + length = ndr->data_size - ndr->offset; + } +- } else if (ndr->flags & LIBNDR_FLAG_REMAINING) { +- length = ndr->data_size - ndr->offset; + } else { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &length)); + } +-- +1.7.4.1 + diff -Nru samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0005-librpc-ndr-ndr-align-relative-pointers-based-on-the-.patch samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0005-librpc-ndr-ndr-align-relative-pointers-based-on-the-.patch --- samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0005-librpc-ndr-ndr-align-relative-pointers-based-on-the-.patch 1970-01-01 01:00:00.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0005-librpc-ndr-ndr-align-relative-pointers-based-on-the-.patch 2011-03-13 07:56:44.000000000 +0100 @@ -0,0 +1,59 @@ +From a51c67c7b6f471a59ef3c88ca24ad9ea0a4c9196 Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher <metze@samba.org> +Date: Tue, 22 Feb 2011 15:45:44 +0100 +Subject: [PATCH 5/9] librpc/ndr: ndr align relative pointers based on the given flags + +We used to do this only for the reverse relative pointers +and now we always do it. + +metze +(cherry picked from commit 84b884eb4bec38b721d6c38704f12d1d2c601bcb) +(cherry picked from commit 6648ce8990a97da739d4be69657e9ace6198068c) + +Signed-off-by: Stefan Metzmacher <metze@samba.org> +(cherry picked from commit 490d1553714ffc5afe0e49c3473e19697bdfbd53) +(cherry picked from commit 8c61ff6c55fef5f5b2c256503bbde07c6365a805) +--- + librpc/ndr/ndr.c | 26 ++++++++++++++++++++++++++ + 1 files changed, 26 insertions(+), 0 deletions(-) + +diff --git a/librpc/ndr/ndr.c b/librpc/ndr/ndr.c +index 5030443..42d0e81 100644 +--- a/librpc/ndr/ndr.c ++++ b/librpc/ndr/ndr.c +@@ -1105,6 +1105,32 @@ _PUBLIC_ enum ndr_err_code ndr_push_relative_ptr2_start(struct ndr_push *ndr, co + return NDR_ERR_SUCCESS; + } + if (!(ndr->flags & LIBNDR_FLAG_RELATIVE_REVERSE)) { ++ uint32_t relative_offset; ++ size_t pad; ++ /* TODO: remove this hack and let the idl use FLAG_ALIGN2 explicit */ ++ size_t align = 2; ++ ++ if (ndr->offset < ndr->relative_base_offset) { ++ return ndr_push_error(ndr, NDR_ERR_BUFSIZE, ++ "ndr_push_relative_ptr2_start ndr->offset(%u) < ndr->relative_base_offset(%u)", ++ ndr->offset, ndr->relative_base_offset); ++ } ++ ++ relative_offset = ndr->offset - ndr->relative_base_offset; ++ ++ if (ndr->flags & LIBNDR_FLAG_ALIGN2) { ++ align = 2; ++ } else if (ndr->flags & LIBNDR_FLAG_ALIGN4) { ++ align = 4; ++ } else if (ndr->flags & LIBNDR_FLAG_ALIGN8) { ++ align = 8; ++ } ++ ++ pad = ndr_align_size(relative_offset, align); ++ if (pad) { ++ NDR_CHECK(ndr_push_zero(ndr, pad)); ++ } ++ + return ndr_push_relative_ptr2(ndr, p); + } + if (ndr->relative_end_offset == -1) { +-- +1.7.4.1 + diff -Nru samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0006-librpc-align-nstring-and-nstring_array-to-2-byte.patch samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0006-librpc-align-nstring-and-nstring_array-to-2-byte.patch --- samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0006-librpc-align-nstring-and-nstring_array-to-2-byte.patch 1970-01-01 01:00:00.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0006-librpc-align-nstring-and-nstring_array-to-2-byte.patch 2011-03-13 07:56:44.000000000 +0100 @@ -0,0 +1,41 @@ +From 04d7a47653ef04d14673bb647cad7ae41e47e429 Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher <metze@samba.org> +Date: Tue, 22 Feb 2011 15:57:21 +0100 +Subject: [PATCH 6/9] librpc: align nstring and nstring_array to 2 byte + +metze +(cherry picked from commit 712ef2590d0ee59a4a659926cdf8aac6e968dfa8) +(cherry picked from commit 0fb64a26b3b35b75f2f548d882bed41aa0386c6b) + +Signed-off-by: Stefan Metzmacher <metze@samba.org> +(cherry picked from commit c26be77576e13582c7d51fe84f4c69f1c1abf28d) +(cherry picked from commit c13d11b336141800db85667e53877ae689583417) +--- + librpc/idl/idl_types.h | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/librpc/idl/idl_types.h b/librpc/idl/idl_types.h +index 3c6c12c..88ece20 100644 +--- a/librpc/idl/idl_types.h ++++ b/librpc/idl/idl_types.h +@@ -12,7 +12,7 @@ + /* + a null terminated UCS2 string + */ +-#define nstring [flag(STR_NULLTERM)] string ++#define nstring [flag(STR_NULLTERM|NDR_ALIGN2)] string + + /* + an ascii string prefixed with [offset] [length], both 32 bits +@@ -50,7 +50,7 @@ + /* + a null terminated UCS2 string + */ +-#define nstring_array [flag(STR_NULLTERM)] string_array ++#define nstring_array [flag(STR_NULLTERM|NDR_ALIGN2)] string_array + + #define NDR_NOALIGN LIBNDR_FLAG_NOALIGN + #define NDR_REMAINING LIBNDR_FLAG_REMAINING +-- +1.7.4.1 + diff -Nru samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0007-librpc-ndr-remove-align2-hack-for-relative-pointers.patch samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0007-librpc-ndr-remove-align2-hack-for-relative-pointers.patch --- samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0007-librpc-ndr-remove-align2-hack-for-relative-pointers.patch 1970-01-01 01:00:00.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0007-librpc-ndr-remove-align2-hack-for-relative-pointers.patch 2011-03-13 07:56:44.000000000 +0100 @@ -0,0 +1,43 @@ +From 86333080a096052fe927e3d639b5f67f3156c1f6 Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher <metze@samba.org> +Date: Tue, 22 Feb 2011 15:58:45 +0100 +Subject: [PATCH 7/9] librpc/ndr: remove align2 hack for relative pointers + +metze +(cherry picked from commit 23f6f449792d889538e0d0028bb8fbd5c807b0da) +(cherry picked from commit 9313b5d1da24406dd7d26afb2488fee0cbea44a9) + +Signed-off-by: Stefan Metzmacher <metze@samba.org> +(cherry picked from commit 1757dee05942add03edb51163bead807d839fcf6) +(cherry picked from commit 50f639635ceda021efd129d8ea1ecaba4c985f4c) +--- + librpc/ndr/ndr.c | 6 +----- + 1 files changed, 1 insertions(+), 5 deletions(-) + +diff --git a/librpc/ndr/ndr.c b/librpc/ndr/ndr.c +index 42d0e81..9f2042d 100644 +--- a/librpc/ndr/ndr.c ++++ b/librpc/ndr/ndr.c +@@ -1107,8 +1107,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_relative_ptr2_start(struct ndr_push *ndr, co + if (!(ndr->flags & LIBNDR_FLAG_RELATIVE_REVERSE)) { + uint32_t relative_offset; + size_t pad; +- /* TODO: remove this hack and let the idl use FLAG_ALIGN2 explicit */ +- size_t align = 2; ++ size_t align = 1; + + if (ndr->offset < ndr->relative_base_offset) { + return ndr_push_error(ndr, NDR_ERR_BUFSIZE, +@@ -1197,9 +1196,6 @@ _PUBLIC_ enum ndr_err_code ndr_push_relative_ptr2_end(struct ndr_push *ndr, cons + /* the reversed offset is at the end of the main buffer */ + correct_offset = ndr->relative_end_offset - len; + +- /* TODO: remove this hack and let the idl use FLAG_ALIGN2 explicit */ +- align = 2; +- + if (ndr->flags & LIBNDR_FLAG_ALIGN2) { + align = 2; + } else if (ndr->flags & LIBNDR_FLAG_ALIGN4) { +-- +1.7.4.1 + diff -Nru samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0008-spoolss.idl-align-spoolss_PrinterEnumValues-data-bas.patch samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0008-spoolss.idl-align-spoolss_PrinterEnumValues-data-bas.patch --- samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0008-spoolss.idl-align-spoolss_PrinterEnumValues-data-bas.patch 1970-01-01 01:00:00.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0008-spoolss.idl-align-spoolss_PrinterEnumValues-data-bas.patch 2011-03-13 07:56:44.000000000 +0100 @@ -0,0 +1,86 @@ +From 26e85b0d623191b994f81ce0516871cdc870cb45 Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher <metze@samba.org> +Date: Tue, 22 Feb 2011 19:23:33 +0100 +Subject: [PATCH 8/9] spoolss.idl: align spoolss_PrinterEnumValues 'data' based on the type + +metze +(cherry picked from commit 341330600aebcec92fba64ea343888c15a0c3d44) +(cherry picked from commit 757471a5fcd4f95da28402bae6c9ceccff7d6548) + +Signed-off-by: Stefan Metzmacher <metze@samba.org> +(cherry picked from commit 3cb71012a2cf26037323cded8cfd9ec5d12223c6) +(cherry picked from commit 380c40986d029d21e9965f582a0ba3085262466c) +--- + librpc/idl/spoolss.idl | 2 +- + librpc/ndr/ndr_spoolss_buf.c | 32 ++++++++++++++++++++++++++++++++ + librpc/ndr/ndr_spoolss_buf.h | 1 + + 3 files changed, 34 insertions(+), 1 deletions(-) + +diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl +index e0d9d2f..4b277f8 100644 +--- a/librpc/idl/spoolss.idl ++++ b/librpc/idl/spoolss.idl +@@ -2550,7 +2550,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor") + [relative] nstring *value_name; + [value(2*strlen_m_term(value_name))] uint32 value_name_len; + winreg_Type type; +- [relative,subcontext(0),subcontext_size(data_length),flag(NDR_REMAINING)] DATA_BLOB *data; ++ [relative,subcontext(0),subcontext_size(data_length),flag(NDR_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type))] DATA_BLOB *data; + [value(data ? data->length : 0)] uint32 data_length; + } spoolss_PrinterEnumValues; + +diff --git a/librpc/ndr/ndr_spoolss_buf.c b/librpc/ndr/ndr_spoolss_buf.c +index 811a8e2..e132e70 100644 +--- a/librpc/ndr/ndr_spoolss_buf.c ++++ b/librpc/ndr/ndr_spoolss_buf.c +@@ -1409,3 +1409,35 @@ _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, co + ndr->depth--; + talloc_free(str); + } ++ ++_PUBLIC_ uint32_t ndr_spoolss_PrinterEnumValues_align(enum winreg_Type type) ++{ ++ switch(type) { ++ case REG_NONE: ++ return 0; ++ case REG_SZ: ++ return LIBNDR_FLAG_ALIGN2; ++ case REG_EXPAND_SZ: ++ return LIBNDR_FLAG_ALIGN2; ++ case REG_BINARY: ++ return 0; ++ case REG_DWORD: ++ return LIBNDR_FLAG_ALIGN4; ++ case REG_DWORD_BIG_ENDIAN: ++ return LIBNDR_FLAG_ALIGN4; ++ case REG_LINK: ++ return 0; ++ case REG_MULTI_SZ: ++ return LIBNDR_FLAG_ALIGN2; ++ case REG_RESOURCE_LIST: ++ return LIBNDR_FLAG_ALIGN2; ++ case REG_FULL_RESOURCE_DESCRIPTOR: ++ return LIBNDR_FLAG_ALIGN4; ++ case REG_RESOURCE_REQUIREMENTS_LIST: ++ return LIBNDR_FLAG_ALIGN2; ++ case REG_QWORD: ++ return LIBNDR_FLAG_ALIGN8; ++ } ++ ++ return 0; ++} +diff --git a/librpc/ndr/ndr_spoolss_buf.h b/librpc/ndr/ndr_spoolss_buf.h +index 89dcb46..0b75de0 100644 +--- a/librpc/ndr/ndr_spoolss_buf.h ++++ b/librpc/ndr/ndr_spoolss_buf.h +@@ -52,6 +52,7 @@ void ndr_print_spoolss_security_descriptor(struct ndr_print *ndr, const char *na + enum ndr_err_code ndr_pull_spoolss_security_descriptor(struct ndr_pull *ndr, int ndr_flags, struct security_descriptor *r); + enum ndr_err_code ndr_push_spoolss_security_descriptor(struct ndr_push *ndr, int ndr_flags, const struct security_descriptor *r); + _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r); ++_PUBLIC_ uint32_t ndr_spoolss_PrinterEnumValues_align(enum winreg_Type type); + + #undef _PRINTF_ATTRIBUTE + #define _PRINTF_ATTRIBUTE(a1, a2) +-- +1.7.4.1 + diff -Nru samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0009-spoolss.idl-align-spoolss_DriverFileInfo-relative-po.patch samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0009-spoolss.idl-align-spoolss_DriverFileInfo-relative-po.patch --- samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0009-spoolss.idl-align-spoolss_DriverFileInfo-relative-po.patch 1970-01-01 01:00:00.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0009-spoolss.idl-align-spoolss_DriverFileInfo-relative-po.patch 2011-03-13 07:56:44.000000000 +0100 @@ -0,0 +1,32 @@ +From 0b7f09814edc15166f72095fa95827be2b81e7bb Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher <metze@samba.org> +Date: Tue, 22 Feb 2011 15:56:30 +0100 +Subject: [PATCH 9/9] spoolss.idl: align spoolss_DriverFileInfo relative pointer to 4 byte + +metze +(cherry picked from commit b6ece01c7922adeb3c9e718bc8cc610cae7c543c) +(cherry picked from commit ba1a72cb153892e491af91a6bb61e1820135fa12) + +Signed-off-by: Stefan Metzmacher <metze@samba.org> +(cherry picked from commit 25f93fe17a396f9c0372dd5d1f4210ecfce7ded9) +(cherry picked from commit b8fbc4eff64d4ec5dec0bbfd055f8b3a6851b9f0) +--- + librpc/idl/spoolss.idl | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl +index 4b277f8..d17b0b4 100644 +--- a/librpc/idl/spoolss.idl ++++ b/librpc/idl/spoolss.idl +@@ -1256,7 +1256,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor") + spoolss_DriverOSVersion version; + [relative] nstring *driver_name; + [relative] nstring *architecture; +- [relative] [size_is(file_count)] spoolss_DriverFileInfo *file_info; ++ [relative,size_is(file_count),flag(NDR_ALIGN4)] spoolss_DriverFileInfo *file_info; + uint32 file_count; + [relative] nstring *monitor_name; + [relative] nstring *default_datatype; +-- +1.7.4.1 + diff -Nru samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0010-librpc-ndr-handle-NOALIGN-flag-for-relative-pointers.patch samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0010-librpc-ndr-handle-NOALIGN-flag-for-relative-pointers.patch --- samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0010-librpc-ndr-handle-NOALIGN-flag-for-relative-pointers.patch 1970-01-01 01:00:00.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/bug_611177-617429_upstream_7567_0010-librpc-ndr-handle-NOALIGN-flag-for-relative-pointers.patch 2011-03-14 21:59:19.000000000 +0100 @@ -0,0 +1,85 @@ +From ca2d4b62f951b1bb03d288ddc8c193579a83f03f Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher <metze@samba.org> +Date: Tue, 1 Mar 2011 14:20:32 +0100 +Subject: [PATCH 12/12] librpc/ndr: handle NOALIGN flag for relative pointers and alignment DATA_BLOBs + +metze + +Autobuild-User: Stefan Metzmacher <metze@samba.org> +Autobuild-Date: Tue Mar 1 17:11:03 CET 2011 on sn-devel-104 +(cherry picked from commit ef224aa004d5f1726d8dca020e0ef96d8c58565e) +(cherry picked from commit 1ea17bacdb09d28a12a8b6ddeba3ac285cd9f905) + +Signed-off-by: Stefan Metzmacher <metze@samba.org> +(cherry picked from commit 7c6bc031b3af3643027865e444fb16f7bb7c7152) +--- + librpc/ndr/ndr.c | 8 ++++++-- + librpc/ndr/ndr_basic.c | 11 ++++++++--- + 2 files changed, 14 insertions(+), 5 deletions(-) + +diff --git a/librpc/ndr/ndr.c b/librpc/ndr/ndr.c +index 9f2042d..2439374 100644 +--- a/librpc/ndr/ndr.c ++++ b/librpc/ndr/ndr.c +@@ -1117,7 +1117,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_relative_ptr2_start(struct ndr_push *ndr, co + + relative_offset = ndr->offset - ndr->relative_base_offset; + +- if (ndr->flags & LIBNDR_FLAG_ALIGN2) { ++ if (ndr->flags & LIBNDR_FLAG_NOALIGN) { ++ align = 1; ++ } else if (ndr->flags & LIBNDR_FLAG_ALIGN2) { + align = 2; + } else if (ndr->flags & LIBNDR_FLAG_ALIGN4) { + align = 4; +@@ -1196,7 +1198,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_relative_ptr2_end(struct ndr_push *ndr, cons + /* the reversed offset is at the end of the main buffer */ + correct_offset = ndr->relative_end_offset - len; + +- if (ndr->flags & LIBNDR_FLAG_ALIGN2) { ++ if (ndr->flags & LIBNDR_FLAG_NOALIGN) { ++ align = 1; ++ } else if (ndr->flags & LIBNDR_FLAG_ALIGN2) { + align = 2; + } else if (ndr->flags & LIBNDR_FLAG_ALIGN4) { + align = 4; +diff --git a/librpc/ndr/ndr_basic.c b/librpc/ndr/ndr_basic.c +index f913eff..64ea6d7 100644 +--- a/librpc/ndr/ndr_basic.c ++++ b/librpc/ndr/ndr_basic.c +@@ -1012,8 +1012,11 @@ _PUBLIC_ void ndr_print_DATA_BLOB(struct ndr_print *ndr, const char *name, DATA_ + _PUBLIC_ enum ndr_err_code ndr_push_DATA_BLOB(struct ndr_push *ndr, int ndr_flags, DATA_BLOB blob) + { + if (ndr->flags & LIBNDR_FLAG_REMAINING) { ++ /* nothing to do */ + } else if (ndr->flags & LIBNDR_ALIGN_FLAGS) { +- if (ndr->flags & LIBNDR_FLAG_ALIGN2) { ++ if (ndr->flags & LIBNDR_FLAG_NOALIGN) { ++ blob.length = 0; ++ } else if (ndr->flags & LIBNDR_FLAG_ALIGN2) { + blob.length = NDR_ALIGN(ndr, 2); + } else if (ndr->flags & LIBNDR_FLAG_ALIGN4) { + blob.length = NDR_ALIGN(ndr, 4); +@@ -1022,7 +1025,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_DATA_BLOB(struct ndr_push *ndr, int ndr_flag + } + NDR_PUSH_ALLOC_SIZE(ndr, blob.data, blob.length); + data_blob_clear(&blob); +- } else if (!(ndr->flags & LIBNDR_FLAG_REMAINING)) { ++ } else { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, blob.length)); + } + NDR_CHECK(ndr_push_bytes(ndr, blob.data, blob.length)); +@@ -1039,7 +1042,9 @@ _PUBLIC_ enum ndr_err_code ndr_pull_DATA_BLOB(struct ndr_pull *ndr, int ndr_flag + if (ndr->flags & LIBNDR_FLAG_REMAINING) { + length = ndr->data_size - ndr->offset; + } else if (ndr->flags & LIBNDR_ALIGN_FLAGS) { +- if (ndr->flags & LIBNDR_FLAG_ALIGN2) { ++ if (ndr->flags & LIBNDR_FLAG_NOALIGN) { ++ length = 0; ++ } else if (ndr->flags & LIBNDR_FLAG_ALIGN2) { + length = NDR_ALIGN(ndr, 2); + } else if (ndr->flags & LIBNDR_FLAG_ALIGN4) { + length = NDR_ALIGN(ndr, 4); +-- +1.7.4.1 + diff -Nru samba-3.5.6~dfsg/debian/patches/bug_613624_upstream_7777_0001-First-part-of-fix-for-bug-7777-When-requesting-looku.patch samba-3.5.6~dfsg/debian/patches/bug_613624_upstream_7777_0001-First-part-of-fix-for-bug-7777-When-requesting-looku.patch --- samba-3.5.6~dfsg/debian/patches/bug_613624_upstream_7777_0001-First-part-of-fix-for-bug-7777-When-requesting-looku.patch 1970-01-01 01:00:00.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/bug_613624_upstream_7777_0001-First-part-of-fix-for-bug-7777-When-requesting-looku.patch 2011-03-13 08:16:02.000000000 +0100 @@ -0,0 +1,39 @@ +From 667ce0018a64c9fb0b44b55aae8b3cd4a2bd3bbf Mon Sep 17 00:00:00 2001 +From: Jeremy Allison <jra@samba.org> +Date: Fri, 5 Nov 2010 12:11:53 -0700 +Subject: [PATCH 1/2] First part of fix for bug #7777 - When requesting lookups for BUILTIN sids, winbindd allocates new uids/gids in error. + +Ensure idmap_init_passdb_domain() correctly initialized the default +domain first. + +Jeremy. +(cherry picked from commit 32a5aa62cb54e90947bd027e72871ffc07c3dbcf) +(cherry picked from commit 5cbd0958eaf25952055c08e3fdc065b815634a3e) +--- + source3/winbindd/idmap.c | 10 ++++++++++ + 1 files changed, 10 insertions(+), 0 deletions(-) + +diff --git a/source3/winbindd/idmap.c b/source3/winbindd/idmap.c +index 4aa229c..7aa2853 100644 +--- a/source3/winbindd/idmap.c ++++ b/source3/winbindd/idmap.c +@@ -428,6 +428,16 @@ fail: + + static struct idmap_domain *idmap_init_passdb_domain(TALLOC_CTX *mem_ctx) + { ++ /* ++ * Always init the default domain, we can't go without one ++ */ ++ if (default_idmap_domain == NULL) { ++ default_idmap_domain = idmap_init_default_domain(NULL); ++ } ++ if (default_idmap_domain == NULL) { ++ return NULL; ++ } ++ + if (passdb_idmap_domain != NULL) { + return passdb_idmap_domain; + } +-- +1.7.4.1 + diff -Nru samba-3.5.6~dfsg/debian/patches/bug_613624_upstream_7777_0002-Second-part-of-fix-for-bug-7777-When-requesting-look.patch samba-3.5.6~dfsg/debian/patches/bug_613624_upstream_7777_0002-Second-part-of-fix-for-bug-7777-When-requesting-look.patch --- samba-3.5.6~dfsg/debian/patches/bug_613624_upstream_7777_0002-Second-part-of-fix-for-bug-7777-When-requesting-look.patch 1970-01-01 01:00:00.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/bug_613624_upstream_7777_0002-Second-part-of-fix-for-bug-7777-When-requesting-look.patch 2011-03-13 08:16:02.000000000 +0100 @@ -0,0 +1,76 @@ +From 52f375dea6c88a54571b101e40e9df8d0825550d Mon Sep 17 00:00:00 2001 +From: Jeremy Allison <jra@samba.org> +Date: Fri, 5 Nov 2010 12:13:38 -0700 +Subject: [PATCH 2/2] Second part of fix for bug #7777 - When requesting lookups for BUILTIN sids, winbindd allocates new uids/gids in error. + +Ensure we return after calling passdb for SID lookups for which we are +authoritative. + +Jeremy. +(cherry picked from commit b5c8b1bbb53caa0ceabb4a5180ff7deb1e58b538) +(cherry picked from commit 8af876432a83292db672c5f7a1fb7e0ec9c1cf65) +--- + source3/winbindd/idmap_util.c | 31 +++++++++++++++++++++++++------ + 1 files changed, 25 insertions(+), 6 deletions(-) + +diff --git a/source3/winbindd/idmap_util.c b/source3/winbindd/idmap_util.c +index 37b7ecb..ba5e637 100644 +--- a/source3/winbindd/idmap_util.c ++++ b/source3/winbindd/idmap_util.c +@@ -25,6 +25,23 @@ + #define DBGC_CLASS DBGC_IDMAP + + /***************************************************************** ++ Returns true if the request was for a specific domain, or ++ for a sid we are authoritative for - BUILTIN, or our own domain. ++*****************************************************************/ ++ ++static bool is_specific_domain_request(const char *dom_name, DOM_SID *sid) ++{ ++ if (dom_name && dom_name[0] != '\0') { ++ return true; ++ } ++ if (sid_check_is_in_builtin(sid) || ++ sid_check_is_in_our_domain(sid)) { ++ return true; ++ } ++ return false; ++} ++ ++/***************************************************************** + Returns the SID mapped to the given UID. + If mapping is not possible returns an error. + *****************************************************************/ +@@ -194,10 +211,11 @@ backend: + goto done; + } + +- if (dom_name[0] != '\0') { ++ if (is_specific_domain_request(dom_name, sid)) { + /* +- * We had the task to go to a specific domain which +- * could not answer our request. Fail. ++ * We had the task to go to a specific domain or ++ * a domain for which we are authoritative for and ++ * it could not answer our request. Fail. + */ + if (winbindd_use_idmap_cache()) { + idmap_cache_set_sid2uid(sid, -1); +@@ -275,10 +293,11 @@ backend: + goto done; + } + +- if (domname[0] != '\0') { ++ if (is_specific_domain_request(domname, sid)) { + /* +- * We had the task to go to a specific domain which +- * could not answer our request. Fail. ++ * We had the task to go to a specific domain or ++ * a domain for which we are authoritative for and ++ * it could not answer our request. Fail. + */ + if (winbindd_use_idmap_cache()) { + idmap_cache_set_sid2uid(sid, -1); +-- +1.7.4.1 + diff -Nru samba-3.5.6~dfsg/debian/patches/debian-changes-2:3.5.6~dfsg-3squeeze2 samba-3.5.6~dfsg/debian/patches/debian-changes-2:3.5.6~dfsg-3squeeze2 --- samba-3.5.6~dfsg/debian/patches/debian-changes-2:3.5.6~dfsg-3squeeze2 2011-02-25 19:19:39.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/debian-changes-2:3.5.6~dfsg-3squeeze2 1970-01-01 01:00:00.000000000 +0100 @@ -1,30 +0,0 @@ -Description: Upstream changes introduced in version 2:3.5.6~dfsg-3squeeze2 - This patch has been created by dpkg-source during the package build. - Here's the last changelog entry, hopefully it gives details on why - those changes were made: - . - samba (2:3.5.6~dfsg-3squeeze2) stable-security; urgency=high - . - * Security update, fixing the following issue: - - CVE-2011-0719: denial of service by memory corruption - . - The person named in the Author field signed this changelog entry. -Author: Christian Perrier <bubulle@debian.org> - ---- -The information above should follow the Patch Tagging Guidelines, please -checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here -are templates for supplementary fields that you might want to add: - -Origin: <vendor|upstream|other>, <url of original patch> -Bug: <url in upstream bugtracker> -Bug-Debian: http://bugs.debian.org/<bugnumber> -Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber> -Forwarded: <no|not-needed|url proving that it has been forwarded> -Reviewed-By: <name and email of someone who approved the patch> -Last-Update: <YYYY-MM-DD> - ---- /dev/null -+++ samba-3.5.6~dfsg/nohup.out -@@ -0,0 +1 @@ -+À la révision 3679. diff -Nru samba-3.5.6~dfsg/debian/patches/series samba-3.5.6~dfsg/debian/patches/series --- samba-3.5.6~dfsg/debian/patches/series 2011-02-23 20:24:17.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/series 2011-03-14 22:07:40.000000000 +0100 @@ -14,4 +14,16 @@ bug_605728_upstream_7791.patch bug_574468_upstream_7265.patch security-CVE-2011-0719.patch -debian-changes-2:3.5.6~dfsg-3squeeze2 +bug_611177-617429_upstream_7567_0001-rerun-make-samba3-idl.patch +bug_611177-617429_upstream_7567_0002-spoolss-fix-potential-crash-bug-in-spoolss_PrinterEn.patch +bug_611177-617429_upstream_7567_0003-spoolss-pretty-print-a-struct-spoolss_Time.patch +bug_611177-617429_upstream_7567_0004-librpc-ndr-let-ndr_push-pull_DATA_BLOB-look-at-LIBND.patch +bug_611177-617429_upstream_7567_0005-librpc-ndr-ndr-align-relative-pointers-based-on-the-.patch +bug_611177-617429_upstream_7567_0006-librpc-align-nstring-and-nstring_array-to-2-byte.patch +bug_611177-617429_upstream_7567_0007-librpc-ndr-remove-align2-hack-for-relative-pointers.patch +bug_611177-617429_upstream_7567_0008-spoolss.idl-align-spoolss_PrinterEnumValues-data-bas.patch +bug_611177-617429_upstream_7567_0009-spoolss.idl-align-spoolss_DriverFileInfo-relative-po.patch +bug_611177-617429_upstream_7567_0010-librpc-ndr-handle-NOALIGN-flag-for-relative-pointers.patch +bug_613624_upstream_7777_0001-First-part-of-fix-for-bug-7777-When-requesting-looku.patch +bug_613624_upstream_7777_0002-Second-part-of-fix-for-bug-7777-When-requesting-look.patch +upstream_7880_0001-s3-rpcclient-Fix-bug-7880-cmd_spoolss_deletedriver-r.patch diff -Nru samba-3.5.6~dfsg/debian/patches/upstream_7880_0001-s3-rpcclient-Fix-bug-7880-cmd_spoolss_deletedriver-r.patch samba-3.5.6~dfsg/debian/patches/upstream_7880_0001-s3-rpcclient-Fix-bug-7880-cmd_spoolss_deletedriver-r.patch --- samba-3.5.6~dfsg/debian/patches/upstream_7880_0001-s3-rpcclient-Fix-bug-7880-cmd_spoolss_deletedriver-r.patch 1970-01-01 01:00:00.000000000 +0100 +++ samba-3.5.6~dfsg/debian/patches/upstream_7880_0001-s3-rpcclient-Fix-bug-7880-cmd_spoolss_deletedriver-r.patch 2011-03-14 22:03:40.000000000 +0100 @@ -0,0 +1,44 @@ +From a36085eceb70a28cb2f3e69677f9f3d874bd2336 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bj=C3=B6rn=20Baumbach?= <bb@sernet.de> +Date: Wed, 22 Dec 2010 15:20:29 +0100 +Subject: [PATCH 13/13] s3-rpcclient: Fix bug #7880: cmd_spoolss_deletedriver() returned without checking all architectures. + +Continues now with next architecture if no driver is available. + +Because of the broken behavior of the rpccli_*() functions, +we need special error code handling. + +Signed-off-by: Stefan Metzmacher <metze@samba.org> +(cherry picked from commit f5af66e67d7c6d62315671c0cf57f47973316226) +(cherry picked from commit dc63f45b523deb5c3d0c4be4239507e5fc4f6a40) +--- + source3/rpcclient/cmd_spoolss.c | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +diff --git a/source3/rpcclient/cmd_spoolss.c b/source3/rpcclient/cmd_spoolss.c +index 2d79b11..f83474e 100644 +--- a/source3/rpcclient/cmd_spoolss.c ++++ b/source3/rpcclient/cmd_spoolss.c +@@ -1893,6 +1893,8 @@ static WERROR cmd_spoolss_deletedriver(struct rpc_pipe_client *cli, + + /* delete the driver for all architectures */ + for (i=0; archi_table[i].long_archi; i++) { ++ result = WERR_OK; ++ + /* make the call to remove the driver */ + status = rpccli_spoolss_DeletePrinterDriver(cli, mem_ctx, + cli->srv_name_slash, +@@ -1900,7 +1902,9 @@ static WERROR cmd_spoolss_deletedriver(struct rpc_pipe_client *cli, + argv[1], + &result); + if (!NT_STATUS_IS_OK(status)) { +- return result; ++ if (W_ERROR_IS_OK(result)) { ++ result = ntstatus_to_werror(status); ++ } + } + if ( !W_ERROR_IS_OK(result) ) { + if ( !W_ERROR_EQUAL(result, WERR_UNKNOWN_PRINTER_DRIVER) ) { +-- +1.7.4.1 +
Attachment:
signature.asc
Description: Digital signature