| Index: core/src/fxcrt/fx_basic_wstring.cpp
|
| diff --git a/core/src/fxcrt/fx_basic_wstring.cpp b/core/src/fxcrt/fx_basic_wstring.cpp
|
| index 42a7ad72a6182225c27c7fcc878b08a1e072ebe5..742f249e37d5f523b3c3169e18bf7a8a3d4f41fb 100644
|
| --- a/core/src/fxcrt/fx_basic_wstring.cpp
|
| +++ b/core/src/fxcrt/fx_basic_wstring.cpp
|
| @@ -4,6 +4,8 @@
|
|
|
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
|
|
| +#include <stddef.h> // For offsetof().
|
| +
|
| #include "../../include/fxcrt/fx_basic.h"
|
| #include "../../../third_party/base/numerics/safe_math.h"
|
|
|
| @@ -15,7 +17,8 @@ static CFX_StringDataW* FX_AllocStringW(int nLen)
|
| return NULL;
|
| }
|
|
|
| - int overhead = 3 * sizeof(long) + sizeof(FX_WCHAR); // +WCHAR is for NUL.
|
| + // Fixed portion of header plus a NUL wide char not in m_nAllocLength.
|
| + int overhead = offsetof(CFX_StringDataW, m_String) + sizeof(FX_WCHAR);
|
| pdfium::base::CheckedNumeric<int> iSize = nLen;
|
| iSize *= sizeof(FX_WCHAR);
|
| iSize += overhead;
|
|
|