diff options
author | Günther Deschner <gd@samba.org> | 2010-02-11 18:54:31 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2010-02-19 14:32:30 +0100 |
commit | 9dba8fccac202fa780ad4552b3e478155836546e (patch) | |
tree | 58c30314582034323e887f99ec104cd3c7bd2891 | |
parent | 6c253c741e2c5243ae02740e28f04c18701fb34d (diff) | |
download | samba-9dba8fccac202fa780ad4552b3e478155836546e.tar.gz |
spoolss: fix relative pointers in ndr_push_spoolss_DriverInfo101.
Guenther
(cherry picked from commit bfd6edb3e9339d602eb6514ff50c3bb6c671174e)
(cherry picked from commit 08fd161d53b1de4d8b55b2a24bc489658805332f)
-rw-r--r-- | librpc/ndr/ndr_spoolss_buf.c | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/librpc/ndr/ndr_spoolss_buf.c b/librpc/ndr/ndr_spoolss_buf.c index b8d6f83ab6c..7d9c2119c0c 100644 --- a/librpc/ndr/ndr_spoolss_buf.c +++ b/librpc/ndr/ndr_spoolss_buf.c @@ -928,8 +928,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, uint32_t _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->driver_name) { - NDR_CHECK(ndr_push_relative_ptr2(ndr, 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)); + NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name)); } ndr->flags = _flags_save_string; } @@ -937,13 +938,14 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, uint32_t _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->architecture) { - NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture)); + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture)); NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture)); + NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture)); } ndr->flags = _flags_save_string; } if (r->file_info) { - NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_info)); + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->file_info)); #if 0 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_count)); #endif @@ -953,13 +955,15 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, for (cntr_file_info_1 = 0; cntr_file_info_1 < r->file_count; cntr_file_info_1++) { NDR_CHECK(ndr_push_spoolss_DriverFileInfo(ndr, NDR_BUFFERS, &r->file_info[cntr_file_info_1])); } + NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->file_info)); } { uint32_t _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->monitor_name) { - NDR_CHECK(ndr_push_relative_ptr2(ndr, 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)); + NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name)); } ndr->flags = _flags_save_string; } @@ -967,8 +971,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, uint32_t _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->default_datatype) { - NDR_CHECK(ndr_push_relative_ptr2(ndr, 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)); + NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype)); } ndr->flags = _flags_save_string; } @@ -976,8 +981,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, uint32_t _flags_save_string_array = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->previous_names) { - NDR_CHECK(ndr_push_relative_ptr2(ndr, 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)); + NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names)); } ndr->flags = _flags_save_string_array; } @@ -985,8 +991,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, uint32_t _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->manufacturer_name) { - NDR_CHECK(ndr_push_relative_ptr2(ndr, 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)); + NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name)); } ndr->flags = _flags_save_string; } @@ -994,8 +1001,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, uint32_t _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->manufacturer_url) { - NDR_CHECK(ndr_push_relative_ptr2(ndr, 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)); + NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url)); } ndr->flags = _flags_save_string; } @@ -1003,8 +1011,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, uint32_t _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->hardware_id) { - NDR_CHECK(ndr_push_relative_ptr2(ndr, 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)); + NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id)); } ndr->flags = _flags_save_string; } @@ -1012,8 +1021,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, uint32_t _flags_save_string = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); if (r->provider) { - NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider)); + NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider)); NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider)); + NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider)); } ndr->flags = _flags_save_string; } |