diff options
author | Ryan Harrison <rharrison@chromium.org> | 2017-08-22 16:58:46 -0400 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-08-22 21:32:26 +0000 |
commit | 32489a0eb4b5b71e7951c1e165e69209655eacee (patch) | |
tree | 69fb566b9e186bb5e46178ad707b6f42f41f533f /core/fxcrt/cfx_bytestring.h | |
parent | 8a1081fbf7f9fac94b32c59b5851387abdd24dea (diff) | |
download | pdfium-32489a0eb4b5b71e7951c1e165e69209655eacee.tar.xz |
Bypass asserts in string [] operator for empty stringschromium/3194
The previous behaviour of [] on an empty string was to return 0
regardless of the index. We wanted to make this more strict, hence the
current behaviour. This has led to a number of crashes due to code
depending on the old behaviour. Reverting to the old behaviour until
we have time to correct the call sites using empty strings.
Bug=chromium:752480, pdfium:828
Change-Id: I511eea4148de85bf7f4694351e7a030b1a37f0de
Reviewed-on: https://pdfium-review.googlesource.com/11630
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fxcrt/cfx_bytestring.h')
-rw-r--r-- | core/fxcrt/cfx_bytestring.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/core/fxcrt/cfx_bytestring.h b/core/fxcrt/cfx_bytestring.h index 3e8b6619c2..0e8e006a3c 100644 --- a/core/fxcrt/cfx_bytestring.h +++ b/core/fxcrt/cfx_bytestring.h @@ -107,9 +107,9 @@ class CFX_ByteString { const CFX_ByteString& operator+=(const CFX_ByteString& str); const CFX_ByteString& operator+=(const CFX_ByteStringC& bstrc); - const CharType& operator[](const FX_STRSIZE index) const { + CharType operator[](const FX_STRSIZE index) const { ASSERT(index >= 0 && index < GetLength()); - return m_pData->m_String[index]; + return m_pData ? m_pData->m_String[index] : 0; } void SetAt(FX_STRSIZE index, char c); |