struct policy_handle *_handle /* [in] [ref] */,
struct winreg_String *_value_name /* [in] [ref] */,
enum winreg_Type *_type /* [in,out] [unique] */,
- uint8_t *_data /* [in,out] [unique,length_is(*data_length),size_is(*data_size)] */,
+ uint8_t *_data /* [in,out] [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */,
uint32_t *_data_size /* [in,out] [unique] */,
uint32_t *_data_length /* [in,out] [unique] */)
{
*state->orig.out.type = *state->tmp.out.type;
}
if (state->orig.out.data && state->tmp.out.data) {
- memcpy(state->orig.out.data, state->tmp.out.data, (*state->tmp.in.data_size) * sizeof(*state->orig.out.data));
+ memcpy(state->orig.out.data, state->tmp.out.data, (state->tmp.in.data_size?*state->tmp.in.data_size:0) * sizeof(*state->orig.out.data));
}
if (state->orig.out.data_size && state->tmp.out.data_size) {
*state->orig.out.data_size = *state->tmp.out.data_size;
struct policy_handle *handle /* [in] [ref] */,
struct winreg_String *value_name /* [in] [ref] */,
enum winreg_Type *type /* [in,out] [unique] */,
- uint8_t *data /* [in,out] [unique,length_is(*data_length),size_is(*data_size)] */,
+ uint8_t *data /* [in,out] [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */,
uint32_t *data_size /* [in,out] [unique] */,
uint32_t *data_length /* [in,out] [unique] */,
WERROR *werror)
*type = *r.out.type;
}
if (data && r.out.data) {
- memcpy(data, r.out.data, (*r.in.data_size) * sizeof(*data));
+ memcpy(data, r.out.data, (r.in.data_size?*r.in.data_size:0) * sizeof(*data));
}
if (data_size && r.out.data_size) {
*data_size = *r.out.data_size;
struct policy_handle *_handle /* [in] [ref] */,
struct winreg_String *_value_name /* [in] [ref] */,
enum winreg_Type *_type /* [in,out] [unique] */,
- uint8_t *_data /* [in,out] [unique,length_is(*data_length),size_is(*data_size)] */,
+ uint8_t *_data /* [in,out] [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */,
uint32_t *_data_size /* [in,out] [unique] */,
uint32_t *_data_length /* [in,out] [unique] */);
NTSTATUS rpccli_winreg_QueryValue_recv(struct tevent_req *req,
struct policy_handle *handle /* [in] [ref] */,
struct winreg_String *value_name /* [in] [ref] */,
enum winreg_Type *type /* [in,out] [unique] */,
- uint8_t *data /* [in,out] [unique,length_is(*data_length),size_is(*data_size)] */,
+ uint8_t *data /* [in,out] [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */,
uint32_t *data_size /* [in,out] [unique] */,
uint32_t *data_length /* [in,out] [unique] */,
WERROR *werror);
}
NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data));
if (r->in.data) {
- NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->in.data_size));
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size?*r->in.data_size:0));
NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
- NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->in.data_length));
- NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, *r->in.data_length));
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_length?*r->in.data_length:0));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.data_length?*r->in.data_length:0));
}
NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
if (r->in.data_size) {
}
NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data));
if (r->out.data) {
- NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.data_size));
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->out.data_size?*r->out.data_size:0));
NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
- NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.data_length));
- NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, *r->out.data_length));
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->out.data_length?*r->out.data_length:0));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->out.data_length?*r->out.data_length:0));
}
NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
if (r->out.data_size) {
}
if (r->in.data) {
if (r->in.data_size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
- NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, *r->in.data_size));
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.data_size?*r->in.data_size:0));
}
if (r->in.data) {
if (r->in.data_length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
- NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, *r->in.data_length));
+ NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, r->in.data_length?*r->in.data_length:0));
}
}
if (flags & NDR_OUT) {
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
if (r->out.data) {
if (r->out.data_size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
- NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, *r->out.data_size));
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->out.data_size?*r->out.data_size:0));
}
if (r->out.data) {
if (r->out.data_length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
- NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, *r->out.data_length));
+ NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, r->out.data_length?*r->out.data_length:0));
}
}
return NDR_ERR_SUCCESS;
ndr->depth++;
if (r->in.data) {
if (r->in.data_length == NULL) return;
- ndr_print_array_uint8(ndr, "data", r->in.data, *r->in.data_length);
+ ndr_print_array_uint8(ndr, "data", r->in.data, r->in.data_length?*r->in.data_length:0);
}
ndr->depth--;
ndr_print_ptr(ndr, "data_size", r->in.data_size);
ndr->depth++;
if (r->out.data) {
if (r->out.data_length == NULL) return;
- ndr_print_array_uint8(ndr, "data", r->out.data, *r->out.data_length);
+ ndr_print_array_uint8(ndr, "data", r->out.data, r->out.data_length?*r->out.data_length:0);
}
ndr->depth--;
ndr_print_ptr(ndr, "data_size", r->out.data_size);
struct policy_handle *handle;/* [ref] */
struct winreg_String *value_name;/* [ref] */
enum winreg_Type *type;/* [unique] */
- uint8_t *data;/* [unique,length_is(*data_length),size_is(*data_size)] */
+ uint8_t *data;/* [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */
uint32_t *data_size;/* [unique] */
uint32_t *data_length;/* [unique] */
} in;
struct {
enum winreg_Type *type;/* [unique] */
- uint8_t *data;/* [unique,length_is(*data_length),size_is(*data_size)] */
+ uint8_t *data;/* [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */
uint32_t *data_size;/* [unique] */
uint32_t *data_length;/* [unique] */
WERROR result;