Preparation for cleaning up this API.
Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Tue Mar 29 21:01:49 CEST 2011 on sn-devel-104
struct samr_Password client_lm;
char *unix_pw = NULL;
bool lm_ok;
+ size_t converted_size = 0;
DEBUG(4,("ntlm_password_check: checking plaintext passwords for user %s\n",
username));
if (lm_response->length &&
(convert_string_talloc(mem_ctx, CH_DOS, CH_UNIX,
lm_response->data, lm_response->length,
- (void *)&unix_pw, NULL))) {
+ (void *)&unix_pw, &converted_size))) {
if (E_deshash(unix_pw, client_lm.hash)) {
lm_ok = true;
} else {
const struct drsuapi_DsAttributeValue *r)
{
char *str;
+ size_t converted_size = 0;
ndr_print_struct(ndr, name, "drsuapi_DsAttributeValue");
ndr->depth++;
CH_UTF16, CH_UNIX,
r->blob->data,
r->blob->length,
- (void **)&str, NULL)) {
+ (void **)&str, &converted_size)) {
ndr_print_string(ndr, "string", "INVALID CONVERSION");
} else {
ndr_print_string(ndr, "string", str);
W_ERROR_HAVE_NO_MEMORY(out->values);
for (i=0; i < out->num_values; i++) {
+ size_t converted_size = 0;
char *str;
if (in->value_ctr.values[i].blob == NULL) {
CH_UTF16, CH_UNIX,
in->value_ctr.values[i].blob->data,
in->value_ctr.values[i].blob->length,
- (void **)&str, NULL)) {
+ (void **)&str, &converted_size)) {
return WERR_FOOBAR;
}
for (i=0; i < out->num_values; i++) {
size_t len;
+ size_t converted_size = 0;
char *str;
if (in->value_ctr.values[i].blob == NULL) {
if (!convert_string_talloc(out->values, CH_UTF16, CH_UNIX,
in->value_ctr.values[i].blob->data+4,
in->value_ctr.values[i].blob->length-4,
- (void **)&str, NULL)) {
+ (void **)&str, &converted_size)) {
return WERR_FOOBAR;
}
static char *reg_val_dotreg_string(TALLOC_CTX *mem_ctx, uint32_t type,
const DATA_BLOB data)
{
+ size_t converted_size = 0;
char *ret = NULL;
if (data.length == 0)
case REG_SZ:
convert_string_talloc(mem_ctx,
CH_UTF16, CH_UNIX, data.data, data.length,
- (void **)&ret, NULL);
+ (void **)&ret, &converted_size);
break;
case REG_DWORD:
case REG_DWORD_BIG_ENDIAN:
_PUBLIC_ char *reg_val_data_string(TALLOC_CTX *mem_ctx, uint32_t type,
const DATA_BLOB data)
{
+ size_t converted_size = 0;
char *ret = NULL;
if (data.length == 0)
convert_string_talloc(mem_ctx,
CH_UTF16, CH_UNIX,
data.data, data.length,
- (void **)&ret, NULL);
+ (void **)&ret, &converted_size);
break;
case REG_DWORD:
case REG_DWORD_BIG_ENDIAN:
uint32_t nlen, len;
bool ret;
void *vstr;
+ size_t converted_size = 0;
+
io->streams =
talloc_realloc(mem_ctx, io->streams, struct stream_struct, n+1);
if (!io->streams) {
}
ret = convert_string_talloc(io->streams,
CH_UTF16, CH_UNIX,
- blob.data+ofs+24, nlen, &vstr, NULL);
+ blob.data+ofs+24, nlen, &vstr, &converted_size);
if (!ret) {
return NT_STATUS_ILLEGAL_CHARACTER;
}
DATA_BLOB blob;
NTSTATUS status;
void *vstr;
+ size_t converted_size = 0;
bool ret;
status = smb2_pull_o16s16_blob(buf, mem_ctx, ptr, &blob);
}
ret = convert_string_talloc(mem_ctx, CH_UTF16, CH_UNIX,
- blob.data, blob.length, &vstr, NULL);
+ blob.data, blob.length, &vstr, &converted_size);
data_blob_free(&blob);
(*str) = (char *)vstr;
if (!ret) {
for (t=samdump_state->trusted_domains; t; t=t->next) {
char *secret_name = talloc_asprintf(mem_ctx, "G$$%s", t->name);
for (s=samdump_state->secrets; s; s=s->next) {
+ size_t converted_size = 0;
char *secret_string;
if (strcasecmp_m(s->name, secret_name) != 0) {
continue;
}
if (!convert_string_talloc_handle(mem_ctx, lpcfg_iconv_handle(ctx->lp_ctx), CH_UTF16, CH_UNIX,
s->secret.data, s->secret.length,
- (void **)&secret_string, NULL)) {
+ (void **)&secret_string, &converted_size)) {
r->out.error_string = talloc_asprintf(mem_ctx,
"Could not convert secret for domain %s to a string",
t->name);
uint8_t new_lm_hash[16];
struct samr_Password lm_verifier;
size_t unicode_pw_len;
+ size_t converted_size = 0;
if (pwbuf == NULL) {
return NT_STATUS_INVALID_PARAMETER;
CH_DOS, CH_UNIX,
(const char *)new_password.data,
new_password.length,
- (void **)&new_pass, NULL)) {
+ (void **)&new_pass, &converted_size)) {
DEBUG(3,("samr: failed to convert incoming password buffer to unix charset\n"));
return NT_STATUS_WRONG_PASSWORD;
}
* this) */
if (lm_pwd && r->in.lm_verifier != NULL) {
char *new_pass;
+ size_t converted_size = 0;
+
if (!convert_string_talloc_handle(mem_ctx, lpcfg_iconv_handle(dce_call->conn->dce_ctx->lp_ctx),
CH_UTF16, CH_UNIX,
(const char *)new_password.data,
new_password.length,
- (void **)&new_pass, NULL)) {
+ (void **)&new_pass, &converted_size)) {
E_deshash(new_pass, new_lm_hash);
E_old_pw_hash(new_nt_hash, lm_pwd->hash, lm_verifier.hash);
if (memcmp(lm_verifier.hash, r->in.lm_verifier->hash, 16) != 0) {
int src_len, src_len2, alignment=0;
bool ret;
char *dest2;
+ size_t converted_size = 0;
if (!(flags & STR_NOALIGN) && ucs2_align(bufinfo->align_base, src, flags)) {
src++;
return src_len2 + alignment;
}
- ret = convert_string_talloc(bufinfo->mem_ctx, CH_UTF16, CH_UNIX, src, src_len2, (void **)&dest2, NULL);
+ ret = convert_string_talloc(bufinfo->mem_ctx, CH_UTF16, CH_UNIX, src, src_len2, (void **)&dest2, &converted_size);
if (!ret) {
*dest = NULL;
int src_len, src_len2;
bool ret;
char *dest2;
+ size_t converted_size = 0;
if (flags & STR_NO_RANGE_CHECK) {
src_len = byte_len;
src_len2++;
}
- ret = convert_string_talloc(bufinfo->mem_ctx, CH_DOS, CH_UNIX, src, src_len2, (void **)&dest2, NULL);
+ ret = convert_string_talloc(bufinfo->mem_ctx, CH_DOS, CH_UNIX, src, src_len2, (void **)&dest2, &converted_size);
if (!ret) {
*dest = NULL;
char *password;
char *dospw;
smb_ucs2_t *unicodepw;
-
+ size_t converted_size = 0;
uint8_t user_session_key[16];
uint8_t lm_key[16];
uint8_t lm_hash[16];
if (!convert_string_talloc(samlogon_state->mem_ctx,
CH_UNIX, CH_DOS,
password, strlen(password)+1,
- (void**)&dospw, NULL)) {
+ (void**)&dospw, &converted_size)) {
DEBUG(0, ("convert_string_talloc failed!\n"));
exit(1);
}