diff options
author | Lei Zhang <thestig@chromium.org> | 2018-08-01 08:13:55 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-08-01 08:13:55 +0000 |
commit | 0ac36018b464f74419b8b8e77d9452b41440187a (patch) | |
tree | fb081fc3457c5c2c2e141613ddcbf6415a5761ae /xfa/fxfa/parser | |
parent | 53d4f0a4526ef996caf5005ae84406a9467423f2 (diff) | |
download | pdfium-0ac36018b464f74419b8b8e77d9452b41440187a.tar.xz |
Fix a nullptr crash in CXFA_LocaleValue::ValidateValue().
Fix some nits as well.
BUG=chromium:868271
Change-Id: Ia3231fde98c3e16e41b092a9833402cedc8e828d
Reviewed-on: https://pdfium-review.googlesource.com/39112
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'xfa/fxfa/parser')
-rw-r--r-- | xfa/fxfa/parser/cxfa_localevalue.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/xfa/fxfa/parser/cxfa_localevalue.cpp b/xfa/fxfa/parser/cxfa_localevalue.cpp index 15082ae5e3..c201f88ef2 100644 --- a/xfa/fxfa/parser/cxfa_localevalue.cpp +++ b/xfa/fxfa/parser/cxfa_localevalue.cpp @@ -99,6 +99,9 @@ bool CXFA_LocaleValue::ValidateValue(const WideString& wsValue, const WideString& wsPattern, LocaleIface* pLocale, WideString* pMatchFormat) { + if (!m_pLocaleMgr) + return false; + WideString wsOutput; LocaleIface* locale = m_pLocaleMgr->GetDefLocale(); if (pLocale) @@ -109,10 +112,9 @@ bool CXFA_LocaleValue::ValidateValue(const WideString& wsValue, pFormat->SplitFormatString(wsPattern, &wsPatterns); bool bRet = false; - int32_t iCount = pdfium::CollectionSize<int32_t>(wsPatterns); - int32_t i = 0; - for (; i < iCount && !bRet; i++) { - WideString wsFormat = wsPatterns[i]; + size_t i = 0; + for (; !bRet && i < wsPatterns.size(); i++) { + const WideString& wsFormat = wsPatterns[i]; switch (ValueCategory(pFormat->GetCategory(wsFormat), m_dwType)) { case FX_LOCALECATEGORY_Null: bRet = pFormat->ParseNull(wsValue, wsFormat); |