Module: wine Branch: master Commit: 0d0b7a145112b251c417327b8d93396ce24ec445 URL: https://source.winehq.org/git/wine.git/?a=commit;h=0d0b7a145112b251c417327b8...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Dec 4 16:03:21 2019 +0100
jscript: Always check for errors in UTF8 conversions.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/jscript/global.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/dlls/jscript/global.c b/dlls/jscript/global.c index 37b222beba..2f7dbcd53f 100644 --- a/dlls/jscript/global.c +++ b/dlls/jscript/global.c @@ -629,7 +629,7 @@ static HRESULT JSGlobal_encodeURI(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags if(is_uri_unescaped(*ptr) || is_uri_reserved(*ptr) || *ptr == '#') { len++; }else { - i = WideCharToMultiByte(CP_UTF8, 0, ptr, 1, NULL, 0, NULL, NULL)*3; + i = WideCharToMultiByte(CP_UTF8, WC_ERR_INVALID_CHARS, ptr, 1, NULL, 0, NULL, NULL)*3; if(!i) { jsstr_release(str); return throw_uri_error(ctx, JS_E_INVALID_URI_CHAR, NULL); @@ -649,7 +649,7 @@ static HRESULT JSGlobal_encodeURI(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags if(is_uri_unescaped(*ptr) || is_uri_reserved(*ptr) || *ptr == '#') { *rptr++ = *ptr; }else { - len = WideCharToMultiByte(CP_UTF8, 0, ptr, 1, buf, sizeof(buf), NULL, NULL); + len = WideCharToMultiByte(CP_UTF8, WC_ERR_INVALID_CHARS, ptr, 1, buf, sizeof(buf), NULL, NULL); for(i=0; i<len; i++) { *rptr++ = '%'; *rptr++ = int_to_char((BYTE)buf[i] >> 4); @@ -703,7 +703,7 @@ static HRESULT JSGlobal_decodeURI(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags val += hex_to_int(ptr[i*3+1])<<4; buf[i] = val;
- res = MultiByteToWideChar(CP_UTF8, 0, buf, i+1, &out, 1); + res = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, buf, i+1, &out, 1); if(res) break; } @@ -734,7 +734,7 @@ static HRESULT JSGlobal_decodeURI(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags val += hex_to_int(ptr[i*3+1])<<4; buf[i] = val;
- res = MultiByteToWideChar(CP_UTF8, 0, buf, i+1, ret, 1); + res = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, buf, i+1, ret, 1); if(res) break; } @@ -780,7 +780,7 @@ static HRESULT JSGlobal_encodeURIComponent(script_ctx_t *ctx, vdisp_t *jsthis, W if(is_uri_unescaped(*ptr)) len++; else { - size = WideCharToMultiByte(CP_UTF8, 0, ptr, 1, NULL, 0, NULL, NULL); + size = WideCharToMultiByte(CP_UTF8, WC_ERR_INVALID_CHARS, ptr, 1, NULL, 0, NULL, NULL); if(!size) { jsstr_release(str); return throw_uri_error(ctx, JS_E_INVALID_URI_CHAR, NULL); @@ -799,7 +799,7 @@ static HRESULT JSGlobal_encodeURIComponent(script_ctx_t *ctx, vdisp_t *jsthis, W if(is_uri_unescaped(*ptr)) { *ret++ = *ptr; }else { - size = WideCharToMultiByte(CP_UTF8, 0, ptr, 1, buf, sizeof(buf), NULL, NULL); + size = WideCharToMultiByte(CP_UTF8, WC_ERR_INVALID_CHARS, ptr, 1, buf, sizeof(buf), NULL, NULL); for(i=0; i<size; i++) { *ret++ = '%'; *ret++ = int_to_char((BYTE)buf[i] >> 4);