summaryrefslogtreecommitdiff
path: root/core/src/fpdfapi
AgeCommit message (Collapse)Author
2015-12-06Merge to XFA: fix for stream object readingWei Li
Loosen a check for earlier version of PDF files. When the bytes with specified length are followed by 'endstream' keyword, even if there is no EOL marker before the keyword, it signals the end of stream. BUG=551258 TBR=jun_fang@foxitsoftware.com Review URL: https://codereview.chromium.org/1499433002 . (cherry picked from commit 0ff66089c87ab6e3adaaff0ec69728ce7a8d8299) Review URL: https://codereview.chromium.org/1504723002 .
2015-12-04Merge to XFA: Fix an incorrect check in CPDF_DataAvail::CheckHintTables.Oliver Chang
R=tsepez@chromium.org TBR=tsepez@chromium.org BUG=566179 Original Review URL: https://codereview.chromium.org/1504513002 . (cherry picked from commit 2d16308298f236ae81aa11a53f2d4e25b502dfac) Review URL: https://codereview.chromium.org/1501123002 .
2015-12-01Merge to XFA: Add basic checking for RebuildCrossRefWei Li
RebuildCrossRef function returns false when we can not find file trailer or any indirect object. This serves as a basic file format checking. BUG=pdfium:215 TBR=jun_fang@foxitsoftware.com Review URL: https://codereview.chromium.org/1476163002 . (cherry picked from commit f14da1d58e8e12633c7a47e6efd5ffe43bb37b4b) Review URL: https://codereview.chromium.org/1486383002 .
2015-11-25Merge to XFA: Fix two memory leaks from pdfium_unittestsQin Zhao
- remove redundant alloc in fx_codec_jpx_unittest.cpp - free memory allocated by HexDecode calls in fpdf_parser_decode_unittest.cpp BUG=PDFium:239 R=thestig@chromium.org Review URL: https://codereview.chromium.org/1467183006 . (cherry picked from commit 6c2d736011c09266015d3e2a0b9c08aeba1bbf31) Review URL: https://codereview.chromium.org/1477833002 .
2015-11-20Make XFA core/ look like master (part N).Tom Sepez
R=thestig@chromium.org Review URL: https://codereview.chromium.org/1463173003 .
2015-11-20Merge to XFA: Change |CCodec_ScanlineDecoder::m_Pitch| to FX_DWORDOliver Chang
This matches the type of the corresponding |CFX_DIBSource::m_Pitch|, where integer overflow is checked for FX_DWORD. This change is propagated to many other places. Also, check for integer overflow in |CCodec_RLScanlineDecoder::Create| during the calculation of |m_Pitch| since it aligns to 4 bytes while overflow was was previously checked without this alignment. TBR=tsepez@chromium.org BUG=555784 Review URL: https://codereview.chromium.org/1460033002 . (cherry picked from commit e7950df70a2fd658f466751b29483436cb31e829) Review URL: https://codereview.chromium.org/1461363002 .
2015-11-20Reduce diffs with master in coreTom Sepez
This week's version. Mostly whitespace, but takes the master version of core/src/fxge/ge/fx_ge_text.cpp verbatim. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1462923004 .
2015-11-19Merge to XFA: Cache object numbers in CPDF_Parser::ParseIndirectObject().Lei Zhang
TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1458633004 . (cherry picked from commit 0c8e6c1f39f20985a3efb17292e46c476194183a) Review URL: https://codereview.chromium.org/1461693005 .
2015-11-19Merge to XFA: Add more overrides.Lei Zhang
Using Chromium's clang + build options, there's more override warnings. TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1453643002 . (cherry picked from commit 126ba519bdd489ec6c285d1410dcae773e8ef673) Review URL: https://codereview.chromium.org/1458373002 .
2015-11-16Merge to XFA: Reland "Cleanup some numeric code.""Dan Sinclair
This reverts commit 0569ab0b11b723d9bca4ddd642b0cf8828c4bdd1. This changes the various comparisons of char >= '0' && char <= '9' and char < '0' || char > '9' to use std::isdigit checks. It also cleans up a handful of hex to digit conversions to call one common method. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1449873003 . (cherry picked from commit 3f148915d12f54a946a0c0bf526162b79c39d650) Review URL: https://codereview.chromium.org/1452673002 .
2015-11-12Merge to XFA: Remove relative includes.Lei Zhang
That refer to parent directories. TBR=dsinclair@chromium.org Review URL: https://codereview.chromium.org/1434223002 . (cherry picked from commit 22bc4227fbbda5a5e9abad2a2c0a98c04fe7f228) Review URL: https://codereview.chromium.org/1439223003 .
2015-11-12Merge to XFA: Clear decoders after the image decoder in the /Filter array.Oliver Chang
During decoding, when an image decoder is encountered, any subsequent decoders are ignored, but remain in the array. However, later on CPDF_DIBSource::ValidateDictParam expects the image decoder to be the last in the array, causing issues. A check is also added in CPDF_DIBSource::GetScanline to ensure that the calculated pitch value is <= the (4-aligned) pitch value in the cached bitmap to prevent future issues. Also cleans up some NULL usages. BUG=552046 TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1406943005 . (cherry picked from commit 182d129bcee8f7731b9bbfde0064295ad3b37271) Review URL: https://codereview.chromium.org/1436153003 .
2015-11-11Merge to XFA: Fix extraction of colour components in ↵Oliver Chang
CPDF_DIBSource::DownSampleScanline32Bit Previously, if |m_bpc| was < 8 (e.g. 4), this function may still try to access the source components as if |m_bpc| == 8. Even when it fell into the codepath that tried to do the right thing in this case, it was wrong. BUG=554151 TBR=tsepez@chromium.org Committed: https://pdfium.googlesource.com/pdfium/+/9b99615806e358fdb396d1cb162ee2e69c2a20ec Review URL: https://codereview.chromium.org/1433423002 . (cherry picked from commit e21fe98d5b5da7da01503b985b07b90c8e811689) Review URL: https://codereview.chromium.org/1441563002 .
2015-11-10Merge to XFA: Fix CalculatePitch32() issues.Tom Sepez
Original Review URL: https://codereview.chromium.org/1432073003 . (cherry picked from commit 46960a43145ab978ca3c90cb6133bb3d5600ad1d) BUG=pdfium:273 TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/1424473008 .
2015-11-10Merge to XFA: Prevent buffer underflow in CPDF_TextObject::CalcPositionDataOliver Chang
R=tsepez@chromium.org TBR=tsepez@chromium.org BUG=554115 Review URL: https://codereview.chromium.org/1435473004 . (cherry picked from commit 46d2e278f62454ed2392630b6d18d33d380a20eb) Review URL: https://codereview.chromium.org/1436673003 .
2015-11-10Merge to XFA: Cleanup CPDF_Stream:Lei Zhang
- Remove CPDF_Stream::Create() and checks that it might fail. - Remove m_pCryptoHandler that's always a nullptr. - Remove m_FileOffset that's always 0. - Rename file version of InitStream() to InitStreamFromFile(). - Use IsMemoryBased() in more places. TBR=dsinclair@chromium.org Review URL: https://codereview.chromium.org/1415163009 . (cherry picked from commit e6e16954f0cdc324849fca9da883be8f131b3834) Review URL: https://codereview.chromium.org/1418493006 .
2015-11-10Merge to XFA: Use unique_ptr and initializer lists in various render files.Lei Zhang
TBR=dsinclair@chromium.org Review URL: https://codereview.chromium.org/1436573003 . (cherry picked from commit c813e21d261c24867234107f2e2ca72e15cb2534) Review URL: https://codereview.chromium.org/1406933007 .
2015-11-10Merge to XFA: Remove core/src/fpdfapi/fpdf_font/common.h and use stdint types.Lei Zhang
TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1437603002 . (cherry picked from commit 21e079dd982f57daa9d5af0d9e48d58189ce35da) Review URL: https://codereview.chromium.org/1421303006 .
2015-11-10Merge to XFA: Fix relative includes within core/Lei Zhang
TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1427633010 . (cherry picked from commit 9fb27cb9797937499c9678bc74cf7846cbf5d2b8) Review URL: https://codereview.chromium.org/1438573002 .
2015-11-10Merge to XFA: Use standard true and false to replace 'TRUE' and 'FALSE' in ↵Jun Fang
pdfium_test BUG=446715 TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1410073009 . Review URL: https://codereview.chromium.org/1413103007 .
2015-11-10Merge to XFA: Support linearized loadingJun Fang
BUG=446715 R=thestig@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/1353093003 . Conflicts: core/include/fpdfapi/fpdf_parser.h core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_embeddertest.cpp samples/pdfium_test.cc testing/embedder_test.cpp testing/embedder_test.h Review URL: https://codereview.chromium.org/1412083010 .
2015-11-09Merge to XFA: Fix a leak in CPDF_Type3Font::LoadChar().Lei Zhang
TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1408063016 . (cherry picked from commit 6d9979dc685e3b67b0a6d9946376e026d75d3e47) Review URL: https://codereview.chromium.org/1418503020 .
2015-11-09Merge to XFA: Add path service to retrieve test data directory at run time ↵Wei Li
so tests can be run from any directory. Previously the tests which read test files assume the current directory is under pdfium. Running from any other directory will break the build. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1408003014 . (cherry picked from commit c0e93a9a942fe7d99800502a61d2fbb58cf9276f) Conflicts: core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_embeddertest.cpp fpdfsdk/src/fpdfdoc_embeddertest.cpp testing/embedder_test.cpp testing/embedder_test.h Review URL: https://codereview.chromium.org/1411403012 .
2015-11-09Merge to XFA: Add some nullptr checks that were missing from commit f7992b39.Lei Zhang
BUG=pdfium:268 TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1425293010 . (cherry picked from commit a8f5b7b5e7501bdcfba585fc8af76c4a0fab22cb) Review URL: https://codereview.chromium.org/1418823008 .
2015-11-09Merge to XFA: Fix leaks in CPDF_SyntaxParser::ReadStream.Lei Zhang
TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1419533016 . (cherry picked from commit 2ce28d26ad16e11828b19f602fcc0ff625a23345) Review URL: https://codereview.chromium.org/1414963007 .
2015-11-06Merge to XFA: Fix all relative includes to third_party.Lei Zhang
- In non-standalone builds, use the provided jpeg library. - Run gn format over all the GN files. - Also roll DEPS for buildtools to c2f2598. - And fix XFA's lack of #includes. BUG=541704 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1425153006 . (cherry picked from commit 34bb6c58fe60206a08dc0a1f37b7cfe83e8c762c) Review URL: https://codereview.chromium.org/1434543003 .
2015-11-05Merge to XFA: Add base test for RebuildCrossRef function.Wei Li
This tests whether RebuildCrossRef could handle well-formatted pdf file. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1409013005 . (cherry picked from commit 4544797e8998a31e7bc3f5439a5982f7f66dff26) Review URL: https://codereview.chromium.org/1413343004 .
2015-11-04Merge to XFA: Make checkdeps --resolve-dotdot succeed.Lei Zhang
This is just a straight-forward, partial merge. It does not actually make checkdeps succeed. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1419373005 . (cherry picked from commit 79f5a32175293620abe456554e10efb7c3f4e7c6) Review URL: https://codereview.chromium.org/1409153007 .
2015-11-04Merge to XFA: Enforce input and output dimensionalities for CPDF_StitchFunc.Oliver Chang
Also cleans up some places in the relevant functions since we're here. BUG=551460 TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1421783004 . Clean merge. (cherry picked from commit 4f85605cbc652a17bc833f883186e0a68af6006d) Review URL: https://codereview.chromium.org/1405383009 .
2015-11-04Merge to XFA: Remove state from RebuildCrossRef state-machine.Dan Sinclair
The state '12' is only used once. This CL folds the contents of state 12 back into the place where we set our state to 12. This works because all state 12 does is decrement the loop counter so we process the same character again and move us to state 0. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1430643007 . (cherry picked from commit 395fbedc65e1261f1fb9189205501f4856235290) Review URL: https://codereview.chromium.org/1414033010 .
2015-11-03Merge to XFA: Add test for CPDF_SyntaxParser::ReadHexString.Dan Sinclair
This CL adds tests for the ReadHexString method of the syntax parser. TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1433503002 . (cherry picked from commit 71ad9a0028a183605fba734c48b4756d6caa7754) Review URL: https://codereview.chromium.org/1424923007 .
2015-11-02Merget to XFA: Add test for CPDF_StreamParser::ReadHexString.Dan Sinclair
This CL adds a unit test for the ReadHexString method. TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1408213008 . (cherry picked from commit c89c6195373b63e99b9cd432c5a181bfb3ad8dbe) Review URL: https://codereview.chromium.org/1417713003 .
2015-11-02Merge to XFA: Add tests for CMap_GetCode and CMap_GetCodeRange.Dan Sinclair
This CL adds tests for the CMap_GetCode and CMap_GetCodeRange methods. To do so, it moves the methods to be static private members of CPDF_CMapParser and makes the test class a friend. TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1414013005 . (cherry picked from commit afca65ac019d2ad4cb8ac8f585809cc1a519ac2b) Review URL: https://codereview.chromium.org/1429943002 .
2015-11-02Merge to XFA: Add a test for the HexDecode method.Dan Sinclair
I moved the declaration to be public, instead of having it implicit in one file and defined in a seperate cpp file. TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1410873009 . (cherry picked from commit e948a4ee08b78e27da37bc12244fa1b66d927dc7) Review URL: https://codereview.chromium.org/1432513002 .
2015-11-02Merge to XFA: Remove _FPDF_ByteStringFromHex as it is unusedDan Sinclair
There are no uses of this method, I also checked the XFA branch and there don't appear to be any uses there either. TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/1427913006 . (cherry picked from commit e65be3a55628294d0f45da456d856b4539f0cb15) Review URL: https://codereview.chromium.org/1415023005 .
2015-11-02Merge to XFA: Add test for StringToCode and StringToWideStringDan Sinclair
This CL adds a test case for the StringToCode and StringToWideString methods in fpdf_font.cpp. In order to do so, it moves the methods to be private methods of CPDF_ToUnicodeMap and make the tests friends of the class. TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1428593005 . (cherry picked from commit 52b0b525dca3d982a04b77fa6d0913aff1e5fd9c) Review URL: https://codereview.chromium.org/1425233004 .
2015-10-28Merge to XFA: Add PDFCharIsLineEnding helperDan Sinclair
This CL adds a helper to check if a given character is a \n or \r. TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1418073006 . (cherry picked from commit 4b38229b004b7b6493cb4c4507df450adc6085f6) Review URL: https://codereview.chromium.org/1428763002 .
2015-10-28Merge to XFA: Add a NULL check in pdf_page_colors.cppOliver Chang
TBR=thestig@chromium.org BUG=548714 Clean merge. Review URL: https://codereview.chromium.org/1430653002 . (cherry picked from commit 55ed2880e9d19e79717063b117aa5eee40dd454b) Review URL: https://codereview.chromium.org/1428643005 .
2015-10-28Merge to XFA: Add constants for the path operators.Dan Sinclair
This CL adds constants for some of the path operators to make it more obvious what is being checked. TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/1413783009 . (cherry picked from commit 5a4af03849c8389872cd6908222df4c4e7f99ca8) Review URL: https://codereview.chromium.org/1415333006 .
2015-10-28Merge to XFA: Check if document was opened during testing.Dan Sinclair
When we call OpenDocument we fail to check if the document was actually opened. Currently we return true in all cases (assuming we read the file). This CL updates the code to check if the document was opened and return false if not. I've updated several tests to check for FALSE instead of TRUE. I verified the documents in fact don't open with my local (non-PDFium) PDF reader. BUG=pdfium:223 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1417893007 . (cherry picked from commit dd4cd523ef4546b43d68e8ca6ec0a97fbe8954e9) Review URL: https://codereview.chromium.org/1418563010 .
2015-10-28Merge to XFA: Add PositionIsInBounds to CPDF_StreamParserDan Sinclair
This Cl moves all of the m_Size <= m_Pos and m_Pos >= m_Size checks to an PositionIsInBounds() helper. TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1412793008 . (cherry picked from commit b9d06fb2186d7002d6231d1805bcf97fc60144c5) Review URL: https://codereview.chromium.org/1414163007 .
2015-10-28Merge to XFA: Add helpers to check the PDF_CharType.Dan Sinclair
This CL adds helpers to provide more descriptive access to PDF_CharType. TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/1407913004 . (cherry picked from commit e3e5675bcdd26b8df7286e10a42d585df6d2321d) Review URL: https://codereview.chromium.org/1419893004 .
2015-10-27Merge to XFA: Use static_cast for various CPDF_Object conversions.Dan Sinclair
This Cl converts a bunch of c-style casts to static_cast<CPDF_Object*>(). BUG=pdfium:201 TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1428583003 . (cherry picked from commit 74b147b5747cf65a8936d201b3ed5b32454365cc) Review URL: https://codereview.chromium.org/1417583007 .
2015-10-27Merge to XFA: Give names to the shading typesDan Sinclair
Currently the shading types are referenced by number. This Cl creates and enum and updates the code to use the enum names instead of magic numbers. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1418623011 . (cherry picked from commit 468974316ed5f6b6f8e637ab2c7afedc7c2bfe6a) Review URL: https://codereview.chromium.org/1428573002 .
2015-10-27Merge to XFA: Type check the m_pShadingObj before assuming it's a stream.Dan Sinclair
The m_pShadingObj can be a stream or a dictionary depending on how it's used. This CL adds some simple type checking to make sure that the type of the object matches what we expect. BUG=chromium:547706 TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1421973004 . (cherry picked from commit 4ef782ab57979add3e3910d6bcfde6ef59f65724) Review URL: https://codereview.chromium.org/1422253002 .
2015-10-26Merge to XFA: Remove usage of std::vector::dataOliver Chang
Clean merge. TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/1412823005 . (cherry picked from commit 044c06f11fb5e62f0984f960be2717ab9bcb540d) Review URL: https://codereview.chromium.org/1413693010 .
2015-10-26Merge to XFA: Remove default argument from CPDF_Dictionary::SetAt().Lei Zhang
Also fix a potential object leak. TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1414963005 . (cherry picked from commit f7992b39cec908e549fb995acae477a9efba538b) Review URL: https://codereview.chromium.org/1421253005 .
2015-10-26Remove CPDF_Reference::Create(), make logic match masterTom Sepez
Makes the files in this CL identical to master, since there are no XFA specifics. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1425663003 .
2015-10-26Merge to XFA: Fix a leak in CPDF_SyntaxParser::GetObject().Lei Zhang
As seen in FPDFViewEmbeddertest.Crasher_451830. TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1385803002 . (cherry picked from commit a568ff2dddd3ef44f224d21b31afff8eb14b6d31) Review URL: https://codereview.chromium.org/1420303005 .
2015-10-26Merge to XFA: Revert "Revert "Add type cast definitions for CPDF_Reference.""Dan Sinclair
This reverts commit 7e155865c90cc1115cc7193b7646a341d8f9093e. Add type cast definitions for CPDF_Reference. This Cl adds ToReference, CPDF_Object::AsReference and CPDF_Object::IsReference and updates the src to use them as needed. BUG=pdfium:201 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1418923005 . (cherry picked from commit 6ee3484bcb413f4cce303e237fe15e2bdaf51ade) Review URL: https://codereview.chromium.org/1410073007 .