diff --git a/src/common/strconv.cpp b/src/common/strconv.cpp index 1136bde236..986bf4f82d 100644 --- a/src/common/strconv.cpp +++ b/src/common/strconv.cpp @@ -1530,7 +1530,8 @@ size_t wxMBConv_iconv::WC2MB(char *buf, const wchar_t *psz, size_t n) const wxMutexLocker lock(wxConstCast(this, wxMBConv_iconv)->m_iconvMutex); #endif - size_t inbuf = wxWcslen(psz) * SIZEOF_WCHAR_T; + size_t inlen = wxWcslen(psz); + size_t inbuf = inlen * SIZEOF_WCHAR_T; size_t outbuf = n; size_t res, cres; @@ -1542,9 +1543,9 @@ size_t wxMBConv_iconv::WC2MB(char *buf, const wchar_t *psz, size_t n) const // (doing WC_BSWAP twice on the original buffer won't help, as it // could be in read-only memory, or be accessed in some other thread) tmpbuf = (wchar_t *)malloc(inbuf + SIZEOF_WCHAR_T); - for ( size_t n = 0; n < inbuf; n++ ) + for ( size_t n = 0; n < inlen; n++ ) tmpbuf[n] = WC_BSWAP(psz[n]); - tmpbuf[inbuf] = L'\0'; + tmpbuf[inlen] = L'\0'; psz = tmpbuf; }