diff options
| author | Jeremy Allison <jra@samba.org> | 2003-09-25 21:26:16 +0000 | 
|---|---|---|
| committer | Jeremy Allison <jra@samba.org> | 2003-09-25 21:26:16 +0000 | 
| commit | d3b9384308e4b5130c9455b853edc4702d7af303 (patch) | |
| tree | 026331069404a2dfd74d5d1443cf416d9ccaaa09 /source3/lib | |
| parent | 6c623b55bd023d9b2afa6ac3d69d814475a493e4 (diff) | |
| download | samba-d3b9384308e4b5130c9455b853edc4702d7af303.tar.gz samba-d3b9384308e4b5130c9455b853edc4702d7af303.tar.bz2 samba-d3b9384308e4b5130c9455b853edc4702d7af303.zip  | |
Fix for #480. Change the interface for init_unistr2 to not take a length
but a flags field. We were assuming that 2*strlen(mb_string) == length of ucs2-le string.
This is not the case. Count it after conversion.
Jeremy.
(This used to be commit f82c273a42f930c7152cfab84394781744815e0e)
Diffstat (limited to 'source3/lib')
| -rw-r--r-- | source3/lib/util_unistr.c | 12 | 
1 files changed, 7 insertions, 5 deletions
diff --git a/source3/lib/util_unistr.c b/source3/lib/util_unistr.c index e7c200218e..e90a824395 100644 --- a/source3/lib/util_unistr.c +++ b/source3/lib/util_unistr.c @@ -819,22 +819,25 @@ UNISTR2* ucs2_to_unistr2(TALLOC_CTX *ctx, UNISTR2* dst, smb_ucs2_t* src)  {  	size_t len; -	if (!src) return NULL; +	if (!src) +		return NULL;  	len = strlen_w(src);  	/* allocate UNISTR2 destination if not given */  	if (!dst) {  		dst = (UNISTR2*) talloc(ctx, sizeof(UNISTR2)); -		if (!dst) return NULL; +		if (!dst) +			return NULL;  	}  	if (!dst->buffer) {  		dst->buffer = (uint16*) talloc(ctx, sizeof(uint16) * (len + 1)); -		if (!dst->buffer) return NULL; +		if (!dst->buffer) +			return NULL;  	}  	/* set UNISTR2 parameters */  	dst->uni_max_len = len + 1; -	dst->undoc = 0; +	dst->offset = 0;  	dst->uni_str_len = len;  	/* copy the actual unicode string */ @@ -842,4 +845,3 @@ UNISTR2* ucs2_to_unistr2(TALLOC_CTX *ctx, UNISTR2* dst, smb_ucs2_t* src)  	return dst;  } -  | 
