Changeset 594 for vendor/current/source3/librpc
- Timestamp:
- Jul 1, 2011, 4:02:23 PM (14 years ago)
- Location:
- vendor/current/source3/librpc
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/source3/librpc/gen_ndr/cli_wbint.c
r414 r594 2510 2510 struct rpc_pipe_client *cli, 2511 2511 struct wbint_RidArray *_rids /* [in] [ref] */, 2512 const char **_domain_name /* [out] [ref,charset(UTF8)] */, 2512 2513 struct wbint_Principals *_names /* [out] [ref] */) 2513 2514 { … … 2528 2529 2529 2530 /* Out parameters */ 2531 state->orig.out.domain_name = _domain_name; 2530 2532 state->orig.out.names = _names; 2531 2533 … … 2576 2578 2577 2579 /* Copy out parameters */ 2580 *state->orig.out.domain_name = *state->tmp.out.domain_name; 2578 2581 *state->orig.out.names = *state->tmp.out.names; 2579 2582 … … 2613 2616 TALLOC_CTX *mem_ctx, 2614 2617 struct wbint_RidArray *rids /* [in] [ref] */, 2618 const char **domain_name /* [out] [ref,charset(UTF8)] */, 2615 2619 struct wbint_Principals *names /* [out] [ref] */) 2616 2620 { … … 2636 2640 2637 2641 /* Return variables */ 2642 *domain_name = *r.out.domain_name; 2638 2643 *names = *r.out.names; 2639 2644 -
vendor/current/source3/librpc/gen_ndr/cli_wbint.h
r414 r594 225 225 struct rpc_pipe_client *cli, 226 226 struct wbint_RidArray *_rids /* [in] [ref] */, 227 const char **_domain_name /* [out] [ref,charset(UTF8)] */, 227 228 struct wbint_Principals *_names /* [out] [ref] */); 228 229 NTSTATUS rpccli_wbint_LookupRids_recv(struct tevent_req *req, … … 232 233 TALLOC_CTX *mem_ctx, 233 234 struct wbint_RidArray *rids /* [in] [ref] */, 235 const char **domain_name /* [out] [ref,charset(UTF8)] */, 234 236 struct wbint_Principals *names /* [out] [ref] */); 235 237 struct tevent_req *rpccli_wbint_CheckMachineAccount_send(TALLOC_CTX *mem_ctx, -
vendor/current/source3/librpc/gen_ndr/ndr_secrets.c
r414 r594 25 25 } 26 26 if (ndr_flags & NDR_BUFFERS) { 27 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_BUFFERS, &r->domain_sid));28 27 } 29 28 ndr->flags = _flags_save_STRUCT; … … 53 52 } 54 53 if (ndr_flags & NDR_BUFFERS) { 55 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_BUFFERS, &r->domain_sid));56 54 } 57 55 ndr->flags = _flags_save_STRUCT; -
vendor/current/source3/librpc/gen_ndr/ndr_wbint.c
r414 r594 2083 2083 } 2084 2084 if (flags & NDR_OUT) { 2085 if (r->out.domain_name == NULL) { 2086 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); 2087 } 2088 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.domain_name)); 2089 if (*r->out.domain_name) { 2090 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.domain_name, CH_UTF8))); 2091 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0)); 2092 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.domain_name, CH_UTF8))); 2093 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.domain_name, ndr_charset_length(*r->out.domain_name, CH_UTF8), sizeof(uint8_t), CH_UTF8)); 2094 } 2085 2095 if (r->out.names == NULL) { 2086 2096 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); … … 2094 2104 static enum ndr_err_code ndr_pull_wbint_LookupRids(struct ndr_pull *ndr, int flags, struct wbint_LookupRids *r) 2095 2105 { 2106 uint32_t _ptr_domain_name; 2096 2107 TALLOC_CTX *_mem_save_rids_0; 2108 TALLOC_CTX *_mem_save_domain_name_0; 2109 TALLOC_CTX *_mem_save_domain_name_1; 2097 2110 TALLOC_CTX *_mem_save_names_0; 2098 2111 if (flags & NDR_IN) { … … 2106 2119 NDR_CHECK(ndr_pull_wbint_RidArray(ndr, NDR_SCALARS, r->in.rids)); 2107 2120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, LIBNDR_FLAG_REF_ALLOC); 2121 NDR_PULL_ALLOC(ndr, r->out.domain_name); 2122 ZERO_STRUCTP(r->out.domain_name); 2108 2123 NDR_PULL_ALLOC(ndr, r->out.names); 2109 2124 ZERO_STRUCTP(r->out.names); 2110 2125 } 2111 2126 if (flags & NDR_OUT) { 2127 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { 2128 NDR_PULL_ALLOC(ndr, r->out.domain_name); 2129 } 2130 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr); 2131 NDR_PULL_SET_MEM_CTX(ndr, r->out.domain_name, LIBNDR_FLAG_REF_ALLOC); 2132 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name)); 2133 if (_ptr_domain_name) { 2134 NDR_PULL_ALLOC(ndr, *r->out.domain_name); 2135 } else { 2136 *r->out.domain_name = NULL; 2137 } 2138 if (*r->out.domain_name) { 2139 _mem_save_domain_name_1 = NDR_PULL_GET_MEM_CTX(ndr); 2140 NDR_PULL_SET_MEM_CTX(ndr, *r->out.domain_name, 0); 2141 NDR_CHECK(ndr_pull_array_size(ndr, r->out.domain_name)); 2142 NDR_CHECK(ndr_pull_array_length(ndr, r->out.domain_name)); 2143 if (ndr_get_array_length(ndr, r->out.domain_name) > ndr_get_array_size(ndr, r->out.domain_name)) { 2144 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.domain_name), ndr_get_array_length(ndr, r->out.domain_name)); 2145 } 2146 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.domain_name), sizeof(uint8_t))); 2147 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.domain_name, ndr_get_array_length(ndr, r->out.domain_name), sizeof(uint8_t), CH_UTF8)); 2148 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_1, 0); 2149 } 2150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, LIBNDR_FLAG_REF_ALLOC); 2112 2151 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { 2113 2152 NDR_PULL_ALLOC(ndr, r->out.names); … … 2141 2180 ndr_print_struct(ndr, "out", "wbint_LookupRids"); 2142 2181 ndr->depth++; 2182 ndr_print_ptr(ndr, "domain_name", r->out.domain_name); 2183 ndr->depth++; 2184 ndr_print_ptr(ndr, "domain_name", *r->out.domain_name); 2185 ndr->depth++; 2186 if (*r->out.domain_name) { 2187 ndr_print_string(ndr, "domain_name", *r->out.domain_name); 2188 } 2189 ndr->depth--; 2190 ndr->depth--; 2143 2191 ndr_print_ptr(ndr, "names", r->out.names); 2144 2192 ndr->depth++; -
vendor/current/source3/librpc/gen_ndr/srv_wbint.c
r414 r594 1424 1424 1425 1425 ZERO_STRUCT(r->out); 1426 r->out.domain_name = talloc_zero(r, const char *); 1427 if (r->out.domain_name == NULL) { 1428 talloc_free(r); 1429 return false; 1430 } 1431 1426 1432 r->out.names = talloc_zero(r, struct wbint_Principals); 1427 1433 if (r->out.names == NULL) { … … 2169 2175 struct wbint_LookupRids *r = (struct wbint_LookupRids *)_r; 2170 2176 ZERO_STRUCT(r->out); 2177 r->out.domain_name = talloc_zero(mem_ctx, const char *); 2178 if (r->out.domain_name == NULL) { 2179 return NT_STATUS_NO_MEMORY; 2180 } 2181 2171 2182 r->out.names = talloc_zero(mem_ctx, struct wbint_Principals); 2172 2183 if (r->out.names == NULL) { -
vendor/current/source3/librpc/gen_ndr/wbint.h
r414 r594 281 281 282 282 struct { 283 const char **domain_name;/* [ref,charset(UTF8)] */ 283 284 struct wbint_Principals *names;/* [ref] */ 284 285 NTSTATUS result; -
vendor/current/source3/librpc/idl/wbint.idl
r414 r594 142 142 NTSTATUS wbint_LookupRids( 143 143 [in] wbint_RidArray *rids, 144 [out,string,charset(UTF8)] char **domain_name, 144 145 [out] wbint_Principals *names 145 146 ); -
vendor/current/source3/librpc/ndr/ndr_string.c
r414 r594 715 715 _PUBLIC_ uint32_t ndr_charset_length(const void *var, charset_t chset) 716 716 { 717 /* FIXME: Treat special chars special here, taking chset into account */ 718 /* Also include 0 byte */ 717 switch (chset) { 718 /* case CH_UTF16: this has the same value as CH_UTF16LE */ 719 case CH_UTF16LE: 720 case CH_UTF16BE: 721 case CH_UTF16MUNGED: 722 case CH_UTF8: 723 return strlen_m_ext_term((const char *)var, chset); 724 case CH_DISPLAY: 725 case CH_DOS: 726 case CH_UNIX: 727 return strlen((const char *)var)+1; 728 } 729 730 /* Fallback, this should never happen */ 719 731 return strlen((const char *)var)+1; 720 732 }
Note:
See TracChangeset
for help on using the changeset viewer.