Merge branch 'master' of ssh://git.samba.org/data/git/samba
authorJelmer Vernooij <jelmer@samba.org>
Mon, 9 Feb 2009 18:44:50 +0000 (19:44 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Mon, 9 Feb 2009 18:44:50 +0000 (19:44 +0100)
librpc/gen_ndr/cli_spoolss.c
librpc/gen_ndr/cli_spoolss.h
librpc/gen_ndr/ndr_eventlog.c
librpc/gen_ndr/ndr_ntsvcs.c
librpc/gen_ndr/ndr_spoolss.c
librpc/gen_ndr/ndr_svcctl.c
librpc/gen_ndr/spoolss.h
librpc/idl/spoolss.idl

index 18086843cab1d0465aa1c34e71a2f12be8968a6b..3a6b53f6affc27b51211c6f3df475e0ac6d0a459 100644 (file)
@@ -3370,7 +3370,7 @@ NTSTATUS rpccli_spoolss_EnumPrinterData(struct rpc_pipe_client *cli,
                                        TALLOC_CTX *mem_ctx,
                                        struct policy_handle *handle /* [in] [ref] */,
                                        uint32_t enum_index /* [in]  */,
-                                       const char *value_name /* [out] [ref,charset(UTF16),size_is(value_offered/2)] */,
+                                       const char *value_name /* [out] [charset(UTF16),size_is(value_offered/2)] */,
                                        uint32_t value_offered /* [in]  */,
                                        uint32_t *value_needed /* [out] [ref] */,
                                        uint32_t *printerdata_type /* [out] [ref] */,
index 516c2c069d0e08c164bff87c7fe0d23b2e62ed3d..2447f18025c9b13f6a219e0f51ca6a3add92ef2c 100644 (file)
@@ -412,7 +412,7 @@ NTSTATUS rpccli_spoolss_EnumPrinterData(struct rpc_pipe_client *cli,
                                        TALLOC_CTX *mem_ctx,
                                        struct policy_handle *handle /* [in] [ref] */,
                                        uint32_t enum_index /* [in]  */,
-                                       const char *value_name /* [out] [ref,charset(UTF16),size_is(value_offered/2)] */,
+                                       const char *value_name /* [out] [charset(UTF16),size_is(value_offered/2)] */,
                                        uint32_t value_offered /* [in]  */,
                                        uint32_t *value_needed /* [out] [ref] */,
                                        uint32_t *printerdata_type /* [out] [ref] */,
index b80f613efadb0beea83b572ad159b8e8f585376f..0d5654c6401430660536f902f970f7f276f98a93 100644 (file)
@@ -1783,7 +1783,7 @@ static enum ndr_err_code ndr_pull_eventlog_ReadEventLogW(struct ndr_pull *ndr, i
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
                }
                NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.number_of_bytes);
-               memset(CONST_DISCARD(struct eventlog_ReadEventLogW *,r->out.data), 0, (r->in.number_of_bytes) * sizeof(*r->out.data));
+               memset(r->out.data, 0, (r->in.number_of_bytes) * sizeof(*r->out.data));
                NDR_PULL_ALLOC(ndr, r->out.sent_size);
                ZERO_STRUCTP(r->out.sent_size);
                NDR_PULL_ALLOC(ndr, r->out.real_size);
@@ -2634,7 +2634,7 @@ static enum ndr_err_code ndr_pull_eventlog_GetLogIntormation(struct ndr_pull *nd
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
                }
                NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.buf_size);
-               memset(CONST_DISCARD(struct eventlog_GetLogIntormation *,r->out.buffer), 0, (r->in.buf_size) * sizeof(*r->out.buffer));
+               memset(r->out.buffer, 0, (r->in.buf_size) * sizeof(*r->out.buffer));
                NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
                ZERO_STRUCTP(r->out.bytes_needed);
        }
index 32040d91f6ee7999b47e40a8e572faa12e8f2485..ef2ecc1d7d9a4d7dc41410a878b8e397760ba2d4 100644 (file)
@@ -580,7 +580,7 @@ static enum ndr_err_code ndr_pull_PNP_GetDeviceList(struct ndr_pull *ndr, int fl
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_length_0, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
                NDR_PULL_ALLOC_N(ndr, r->out.buffer, *r->in.length);
-               memset(CONST_DISCARD(struct PNP_GetDeviceList *,r->out.buffer), 0, (*r->in.length) * sizeof(*r->out.buffer));
+               memset(r->out.buffer, 0, (*r->in.length) * sizeof(*r->out.buffer));
                NDR_PULL_ALLOC(ndr, r->out.length);
                *r->out.length = *r->in.length;
        }
@@ -896,7 +896,7 @@ static enum ndr_err_code ndr_pull_PNP_GetDeviceRegProp(struct ndr_pull *ndr, int
                NDR_PULL_ALLOC(ndr, r->out.reg_data_type);
                *r->out.reg_data_type = *r->in.reg_data_type;
                NDR_PULL_ALLOC_N(ndr, r->out.buffer, *r->in.buffer_size);
-               memset(CONST_DISCARD(struct PNP_GetDeviceRegProp *,r->out.buffer), 0, (*r->in.buffer_size) * sizeof(*r->out.buffer));
+               memset(r->out.buffer, 0, (*r->in.buffer_size) * sizeof(*r->out.buffer));
                NDR_PULL_ALLOC(ndr, r->out.buffer_size);
                *r->out.buffer_size = *r->in.buffer_size;
                NDR_PULL_ALLOC(ndr, r->out.needed);
index c7cf5164b8d94efa117a9b1fe3434abb83b961b2..8c23069be686558dd2ef75e56af634da74344171 100644 (file)
@@ -11546,7 +11546,7 @@ static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
                NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
-               memset(CONST_DISCARD(struct spoolss_ReadPrinter *,r->out.data), 0, (r->in.data_size) * sizeof(*r->out.data));
+               memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
                NDR_PULL_ALLOC(ndr, r->out._data_size);
                ZERO_STRUCTP(r->out._data_size);
        }
@@ -15247,9 +15247,6 @@ static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr,
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
        }
        if (flags & NDR_OUT) {
-               if (r->out.value_name == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
-               }
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
                if (r->out.value_needed == NULL) {
@@ -15293,8 +15290,6 @@ static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr,
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
-               NDR_PULL_ALLOC_N(ndr, r->out.value_name, r->in.value_offered / 2);
-               memset(CONST_DISCARD(struct spoolss_EnumPrinterData *,r->out.value_name), 0, (r->in.value_offered / 2) * sizeof(*r->out.value_name));
                NDR_PULL_ALLOC(ndr, r->out.value_needed);
                ZERO_STRUCTP(r->out.value_needed);
                NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
@@ -15365,10 +15360,7 @@ _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const cha
        if (flags & NDR_OUT) {
                ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
                ndr->depth++;
-               ndr_print_ptr(ndr, "value_name", r->out.value_name);
-               ndr->depth++;
                ndr_print_string(ndr, "value_name", r->out.value_name);
-               ndr->depth--;
                ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
                ndr->depth++;
                ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
@@ -15742,7 +15734,7 @@ static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr,
                NDR_PULL_ALLOC(ndr, r->out.type);
                ZERO_STRUCTP(r->out.type);
                NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
-               memset(CONST_DISCARD(struct spoolss_GetPrinterDataEx *,r->out.buffer), 0, (r->in.offered) * sizeof(*r->out.buffer));
+               memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
                NDR_PULL_ALLOC(ndr, r->out.needed);
                ZERO_STRUCTP(r->out.needed);
        }
@@ -15870,7 +15862,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *n
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
                NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
-               memset(CONST_DISCARD(struct spoolss_EnumPrinterDataEx *,r->out.buffer), 0, (r->in.offered) * sizeof(*r->out.buffer));
+               memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
                NDR_PULL_ALLOC(ndr, r->out.needed);
                ZERO_STRUCTP(r->out.needed);
                NDR_PULL_ALLOC(ndr, r->out.count);
@@ -15999,7 +15991,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr,
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
                NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
-               memset(CONST_DISCARD(struct spoolss_EnumPrinterKey *,r->out.key_buffer), 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
+               memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
                NDR_PULL_ALLOC(ndr, r->out.needed);
                ZERO_STRUCTP(r->out.needed);
        }
@@ -16563,7 +16555,7 @@ static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flag
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
                NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
-               memset(CONST_DISCARD(struct spoolss_XcvData *,r->out.out_data), 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
+               memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
                NDR_PULL_ALLOC(ndr, r->out.needed);
                ZERO_STRUCTP(r->out.needed);
                NDR_PULL_ALLOC(ndr, r->out.status_code);
index fc59371697f9e6140b5e951675410d32087b5e6b..6101b7da87d54a734caef68dd727cce8372d3c1c 100644 (file)
@@ -1631,7 +1631,7 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceObjectSecurity(struct ndr_p
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
                }
                NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.buffer_size);
-               memset(CONST_DISCARD(struct svcctl_QueryServiceObjectSecurity *,r->out.buffer), 0, (r->in.buffer_size) * sizeof(*r->out.buffer));
+               memset(r->out.buffer, 0, (r->in.buffer_size) * sizeof(*r->out.buffer));
                NDR_PULL_ALLOC(ndr, r->out.needed);
                ZERO_STRUCTP(r->out.needed);
        }
@@ -2733,7 +2733,7 @@ static enum ndr_err_code ndr_pull_svcctl_EnumDependentServicesW(struct ndr_pull
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
                }
                NDR_PULL_ALLOC_N(ndr, r->out.service_status, r->in.buf_size);
-               memset(CONST_DISCARD(struct svcctl_EnumDependentServicesW *,r->out.service_status), 0, (r->in.buf_size) * sizeof(*r->out.service_status));
+               memset(r->out.service_status, 0, (r->in.buf_size) * sizeof(*r->out.service_status));
                NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
                ZERO_STRUCTP(r->out.bytes_needed);
                NDR_PULL_ALLOC(ndr, r->out.services_returned);
@@ -2886,7 +2886,7 @@ static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusW(struct ndr_pull *nd
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0);
                }
                NDR_PULL_ALLOC_N(ndr, r->out.service, r->in.buf_size);
-               memset(CONST_DISCARD(struct svcctl_EnumServicesStatusW *,r->out.service), 0, (r->in.buf_size) * sizeof(*r->out.service));
+               memset(r->out.service, 0, (r->in.buf_size) * sizeof(*r->out.service));
                NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
                ZERO_STRUCTP(r->out.bytes_needed);
                NDR_PULL_ALLOC(ndr, r->out.services_returned);
@@ -6091,7 +6091,7 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfig2W(struct ndr_pull *n
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
                }
                NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.buf_size);
-               memset(CONST_DISCARD(struct svcctl_QueryServiceConfig2W *,r->out.buffer), 0, (r->in.buf_size) * sizeof(*r->out.buffer));
+               memset(r->out.buffer, 0, (r->in.buf_size) * sizeof(*r->out.buffer));
                NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
                ZERO_STRUCTP(r->out.bytes_needed);
        }
@@ -6199,7 +6199,7 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceStatusEx(struct ndr_pull *n
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
                }
                NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.buf_size);
-               memset(CONST_DISCARD(struct svcctl_QueryServiceStatusEx *,r->out.buffer), 0, (r->in.buf_size) * sizeof(*r->out.buffer));
+               memset(r->out.buffer, 0, (r->in.buf_size) * sizeof(*r->out.buffer));
                NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
                ZERO_STRUCTP(r->out.bytes_needed);
        }
@@ -6573,7 +6573,7 @@ static enum ndr_err_code ndr_pull_EnumServicesStatusExW(struct ndr_pull *ndr, in
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_name_0, 0);
                }
                NDR_PULL_ALLOC_N(ndr, r->out.services, r->in.buf_size);
-               memset(CONST_DISCARD(struct EnumServicesStatusExW *,r->out.services), 0, (r->in.buf_size) * sizeof(*r->out.services));
+               memset(r->out.services, 0, (r->in.buf_size) * sizeof(*r->out.services));
                NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
                ZERO_STRUCTP(r->out.bytes_needed);
                NDR_PULL_ALLOC(ndr, r->out.service_returned);
index 36950b0f6436d7a9dd8bbcd62b45cea449495ed0..33f6042bd8484445cfdd80aad2ea9efaf36bf7e2 100644 (file)
@@ -1961,7 +1961,7 @@ struct spoolss_EnumPrinterData {
        } in;
 
        struct {
-               const char *value_name;/* [ref,charset(UTF16),size_is(value_offered/2)] */
+               const char *value_name;/* [charset(UTF16),size_is(value_offered/2)] */
                uint32_t *value_needed;/* [ref] */
                uint32_t *printerdata_type;/* [ref] */
                DATA_BLOB *buffer;/* [ref] */
index 09646c9d67e0823cec92ccd3e2baf11fe97ec665..bb2bb3d50aa28d654805d9f5a7514af169901e01 100644 (file)
@@ -1478,7 +1478,7 @@ import "misc.idl", "security.idl", "winreg.idl";
        WERROR spoolss_EnumPrinterData(
                [in,ref] policy_handle *handle,
                [in]     uint32 enum_index,
-               [out,ref,size_is(value_offered/2),charset(UTF16)] uint16 *value_name,
+               [out,size_is(value_offered/2),charset(UTF16)] uint16 value_name[],
                [in]     uint32 value_offered,
                [out,ref] uint32 *value_needed,
                [out,ref] uint32 *printerdata_type,