From 5ea101f048483899d4a0a36c7eb6e768e408feec Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Tue, 4 Dec 2007 15:21:14 -0800 Subject: Allow STR_TERMINATE and -1 src_len for pull_ucs2_base_talloc(). Jeremy. (This used to be commit 063358d87ac9a1d948c8d4b6358e926dd14bb3ac) --- source3/lib/charcnv.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'source3/lib/charcnv.c') diff --git a/source3/lib/charcnv.c b/source3/lib/charcnv.c index 0dfa88e87e..9592bbc287 100644 --- a/source3/lib/charcnv.c +++ b/source3/lib/charcnv.c @@ -592,7 +592,7 @@ size_t convert_string_allocate(TALLOC_CTX *ctx, charset_t from, charset_t to, goto use_as_is; break; case E2BIG: - goto convert; + goto convert; case EILSEQ: reason="Illegal multibyte sequence"; if (!conv_silent) @@ -1503,6 +1503,12 @@ size_t pull_ucs2_base_talloc(TALLOC_CTX *ctx, if (len < src_len/2) len++; src_len = len*2; + } else { + /* + * src_len == -1 - alloc interface won't take this + * so we must calculate. + */ + src_len = (strlen_w((const smb_ucs2_t *)src)+1)*sizeof(smb_ucs2_t); } /* Ensure we don't use an insane length from the client. */ if (src_len >= 1024*1024) { -- cgit