From 5258b3a219c310175e32b837b39214dd37c5d061 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Tue, 11 Sep 2012 16:08:21 +0200 Subject: [PATCH] msvcp90: Fixed copied buffer siezes in functions operating on wchar_t. --- dlls/msvcp100/ios.c | 8 ++++---- dlls/msvcp90/ios.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dlls/msvcp100/ios.c b/dlls/msvcp100/ios.c index 9d6ad676a30..57c1aa423a2 100644 --- a/dlls/msvcp100/ios.c +++ b/dlls/msvcp100/ios.c @@ -1822,11 +1822,11 @@ streamsize __thiscall basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar *thi chunk = count-copied; if(chunk > 0) { - memcpy_s(ptr+copied, size, *this->prpos, chunk); + memcpy_s(ptr+copied, size, *this->prpos, chunk*sizeof(wchar_t)); *this->prpos += chunk; *this->prsize -= chunk; copied += chunk; - size -= chunk; + size -= chunk*sizeof(wchar_t); }else if((c = call_basic_streambuf_wchar_uflow(this)) != WEOF) { ptr[copied] = c; copied++; @@ -2315,7 +2315,7 @@ streamsize __thiscall basic_streambuf_wchar_xsputn(basic_streambuf_wchar *this, chunk = count-copied; if(chunk > 0) { - memcpy(*this->pwpos, ptr+copied, chunk); + memcpy(*this->pwpos, ptr+copied, chunk*sizeof(wchar_t)); *this->pwpos += chunk; *this->pwsize -= chunk; copied += chunk; @@ -3948,7 +3948,7 @@ void __thiscall basic_stringbuf_wchar__Init(basic_stringbuf_wchar *this, const w throw_exception(EXCEPTION_BAD_ALLOC, NULL); } - memcpy(buf, str, count); + memcpy(buf, str, count*sizeof(wchar_t)); this->seekhigh = buf + count; this->state |= STRINGBUF_allocated; diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c index 82010c61188..699ac987efa 100644 --- a/dlls/msvcp90/ios.c +++ b/dlls/msvcp90/ios.c @@ -1812,11 +1812,11 @@ streamsize __thiscall basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar *thi chunk = count-copied; if(chunk > 0) { - memcpy_s(ptr+copied, size, *this->prpos, chunk); + memcpy_s(ptr+copied, size, *this->prpos, chunk*sizeof(wchar_t)); *this->prpos += chunk; *this->prsize -= chunk; copied += chunk; - size -= chunk; + size -= chunk*sizeof(wchar_t); }else if((c = call_basic_streambuf_wchar_uflow(this)) != WEOF) { ptr[copied] = c; copied++; @@ -2305,7 +2305,7 @@ streamsize __thiscall basic_streambuf_wchar_xsputn(basic_streambuf_wchar *this, chunk = count-copied; if(chunk > 0) { - memcpy(*this->pwpos, ptr+copied, chunk); + memcpy(*this->pwpos, ptr+copied, chunk*sizeof(wchar_t)); *this->pwpos += chunk; *this->pwsize -= chunk; copied += chunk; @@ -3938,7 +3938,7 @@ void __thiscall basic_stringbuf_wchar__Init(basic_stringbuf_wchar *this, const w throw_exception(EXCEPTION_BAD_ALLOC, NULL); } - memcpy(buf, str, count); + memcpy(buf, str, count*sizeof(wchar_t)); this->seekhigh = buf + count; this->state |= STRINGBUF_allocated; -- 2.11.4.GIT