diff options
author | Jun Fang <jun_fang@foxitsoftware.com> | 2015-11-25 11:13:50 +0800 |
---|---|---|
committer | Jun Fang <jun_fang@foxitsoftware.com> | 2015-11-25 11:13:50 +0800 |
commit | c70b19aad245fb1ed39bf8c264d991555f4c5a58 (patch) | |
tree | 5a86d91e65962343aba109e46ed58c9d9b999933 /core/src/fxcrt/fx_basic_wstring.cpp | |
parent | 01fe5885b4dfbd9f116fb62b7bce585c153bfa77 (diff) | |
download | pdfium-c70b19aad245fb1ed39bf8c264d991555f4c5a58.tar.xz |
Fix invalid buffer length set in CFX_WideString::UTF16LE_Encode()
BUG=pdfium:275
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1443603002 .
Diffstat (limited to 'core/src/fxcrt/fx_basic_wstring.cpp')
-rw-r--r-- | core/src/fxcrt/fx_basic_wstring.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/core/src/fxcrt/fx_basic_wstring.cpp b/core/src/fxcrt/fx_basic_wstring.cpp index 220ffbd57d..7ea7e8e112 100644 --- a/core/src/fxcrt/fx_basic_wstring.cpp +++ b/core/src/fxcrt/fx_basic_wstring.cpp @@ -287,19 +287,17 @@ CFX_ByteString CFX_WideString::UTF8Encode() const { return FX_UTF8Encode(*this); } CFX_ByteString CFX_WideString::UTF16LE_Encode() const { - if (m_pData == NULL) { - return CFX_ByteString(FX_BSTRC("\0\0")); + CFX_ByteString result; + if (!m_pData) { + return result; } int len = m_pData->m_nDataLength; - CFX_ByteString result; - FX_CHAR* buffer = result.GetBuffer(len * 2 + 2); - for (int i = 0; i < len; i++) { + FX_CHAR* buffer = result.GetBuffer(len * 2); + for (int i = 0; i < len; ++i) { buffer[i * 2] = m_pData->m_String[i] & 0xff; buffer[i * 2 + 1] = m_pData->m_String[i] >> 8; } - buffer[len * 2] = 0; - buffer[len * 2 + 1] = 0; - result.ReleaseBuffer(len * 2 + 2); + result.ReleaseBuffer(len * 2); return result; } void CFX_WideString::ConvertFrom(const CFX_ByteString& str, |