Chromium Code Reviews| Index: core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp |
| diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp |
| index bdbb939148ced7c1f902924745106a58bc7169b4..4b9ce361c2b3686341940f2b92dce3c9076fb5f0 100644 |
| --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp |
| +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp |
| @@ -4907,11 +4907,11 @@ int32_t CPDF_HintTables::CheckPage(int index, IFX_DownloadHints* pHints) { |
| if (index == nFirstAvailPage) |
| return IPDF_DataAvail::DataAvailable; |
| FX_DWORD dwLength = GetItemLength(index, m_szPageOffsetArray); |
| - if (!dwLength || |
| - !m_pDataAvail->IsDataAvail(m_szPageOffsetArray[index], dwLength, |
| - pHints)) { |
| + // If two pages have the same offset, it should be treated as an error. |
| + if (!dwLength) |
| + return IPDF_DataAvail::DataError; |
| + if (!m_pDataAvail->IsDataAvail(m_szPageOffsetArray[index], dwLength, pHints)) |
| return IPDF_DataAvail::DataNotAvailable; |
| - } |
| // Download data of shared objects in the page. |
| FX_DWORD offset = 0; |
| for (int i = 0; i < index; ++i) { |
| @@ -4920,7 +4920,7 @@ int32_t CPDF_HintTables::CheckPage(int index, IFX_DownloadHints* pHints) { |
| CPDF_Object* pFirstPageObj = m_pLinearizedDict->GetElementValue("O"); |
| int nFirstPageObjNum = pFirstPageObj ? pFirstPageObj->GetInteger() : -1; |
| if (nFirstPageObjNum < 0) |
| - return FALSE; // TODO(thestig): Fix this and the return type. |
| + return IPDF_DataAvail::DataError; |
| FX_DWORD dwIndex = 0; |
| FX_DWORD dwObjNum = 0; |
| for (int j = 0; j < m_dwNSharedObjsArray[index]; ++j) { |
| @@ -4933,11 +4933,12 @@ int32_t CPDF_HintTables::CheckPage(int index, IFX_DownloadHints* pHints) { |
| continue; |
| } |
| dwLength = GetItemLength(dwIndex, m_szSharedObjOffsetArray); |
| - if (!dwLength || |
| - !m_pDataAvail->IsDataAvail(m_szSharedObjOffsetArray[dwIndex], dwLength, |
| - pHints)) { |
| + // If two objects have the same offset, it should be treated as an error. |
| + if (!dwLength) |
| + return IPDF_DataAvail::DataError; |
| + if (!m_pDataAvail->IsDataAvail(m_szSharedObjOffsetArray[dwIndex], dwLength, |
| + pHints)) |
|
Lei Zhang
2015/12/18 07:59:05
Please add the braces back for multi-line if state
jun_fang
2015/12/18 08:05:19
Acknowledged.
|
| return IPDF_DataAvail::DataNotAvailable; |
| - } |
| } |
| return IPDF_DataAvail::DataAvailable; |
| } |