summaryrefslogtreecommitdiff
path: root/third_party
AgeCommit message (Collapse)Author
2018-05-17Update third_party/base/compiler_specific.h.Lei Zhang
Import Chromium's base/compiler_specific.h from r537069. Now that FALLTHROUGH is available via compiler_specific.h, remove FX_FALLTHROUGH. Change-Id: I8b9631a4f007673e10e0c26951dfd61e9dcada30 Reviewed-on: https://pdfium-review.googlesource.com/32639 Reviewed-by: Nico Weber <thakis@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-05-16Add support for PartionRealloc to return nullptrRyan Harrison
Currently the PartitionRealloc code path will only exit, with no option to return nullptr on failure, unlike PartitionAlloc code path. This CL refactors the realloc code path to be similar to alloc code path, following the upstream patch: https://chromium-review.googlesource.com/c/chromium/src/+/1044971 This also changes the version of realloc exposed to third party C libs to have the nullptr behaviour, like the exposed version of alloc. This CL is a redo of https://pdfium-review.googlesource.com/c/pdfium/+/31990 BUG=chromium:783022 Change-Id: Ib1b659079585dfd0423d683b8a2c7b6758a22a01 Reviewed-on: https://pdfium-review.googlesource.com/32613 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Chris Palmer <palmer@chromium.org>
2018-05-16Update third_party/base/bits.h.Lei Zhang
Pick up https://crrev.com/515947 and https://crrev.com/542972 Change-Id: Idccd388ee2f9cc71ace7ed5f598c820754e87b6e Reviewed-on: https://pdfium-review.googlesource.com/32631 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-04-27Fix undefined behavior in AGG.Lei Zhang
BUG=chromium:746232 Change-Id: Id8f22d09bc7768603ea67bd52a5a5b3d87885ea9 Reviewed-on: https://pdfium-review.googlesource.com/31370 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-04-27Updated libtiff 4.0.8->4.0.9Ryan Harrison
Applied 0000-build-config.patch Applied 0006-HeapBufferOverflow-ChopUpSingleUncompressedStrip.patch Applied 0008-HeapBufferOverflow-ChopUpSingleUncompressedStrip.patch Updated and applied 0017-safe_skews_in_gtTileContig.patch Removed 0025-upstream-OOM-gtTileContig.patch, already applied Removed 0026-upstream-null-dereference.patch, already applied Applied 0027-build-config.patch Updated and applied 0028-nstrips-OOM.patch BUG=pdfium:1074 Change-Id: I32510327155213fd6256c5a67fa1be3a54cb975c Reviewed-on: https://pdfium-review.googlesource.com/31550 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2018-04-25Roll third_party/googletest/src/ a325ad2db..4bd8c4638 (125 commits)Lei Zhang
https://chromium.googlesource.com/external/github.com/google/googletest.git/+log/a325ad2db5de..4bd8c4638ada Created with: roll-dep third_party/googletest/src Change-Id: I963e0b39119ab564754a81d20c38b5641b9230b5 Reviewed-on: https://pdfium-review.googlesource.com/31130 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-04-25Roll third_party/freetype/src/ 26ad1acbc..2157d8fa6 (21 commits)chromium/3409Nicolas Pena
https://chromium.googlesource.com/chromium/src/third_party/freetype2.git/+log/26ad1acbcb4c..2157d8fa6f7e $ git log 26ad1acbc..2157d8fa6 --date=short --no-merges --format='%ad %ae %s' 2018-04-24 bungeman [base] Avoid undefined behaviour in lcd filtering code (#53727). 2018-04-22 wl * src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing. 2018-04-22 apodtele [base] Fix bitmap emboldening. 2018-04-22 wl Revert "[base] Fix bitmap copying where the new pitch is smaller." 2018-04-22 wl [base] Fix bitmap copying where the new pitch is smaller. 2018-04-22 wl Another fix for handling invalid format 2 cmaps. 2018-04-19 apodtele Documentation tweaks. 2018-04-19 wl [autofit] Add support for Georgian Mtavruli characters. 2018-04-19 wl Fix handling of invalid format 2 cmaps. 2018-04-17 wl [truetype] Integer overflow issues. 2018-04-16 wl CHANGES: Mention CVE-2018-6942. 2018-04-16 wl [truetype] Integer overflow issues. 2018-04-15 ankit97dhankhar [docmaker] Make it work with python3. 2018-04-15 apodtele [build] Use `info' function of make 3.81. 2018-04-15 wl [truetype]: Limit `SLOOP' bytecode argument to 16 bits. 2018-04-14 wl [truetype] Integer overflow issues. 2018-04-14 wl [autofit] Update to Unicode 11.0.0. 2018-04-07 madigens Modernize CMake build. 2018-04-09 wl [truetype] Integer overflow issues. 2018-04-06 apodtele [windows, wince] Clean up legacy project files. 2018-04-04 wl [cff, type1] Sanitize `BlueFuzz' and `BlueShift'. Created with: roll-dep third_party/freetype/src Bug: pdfium:1070 Change-Id: I097d77d9f9f4e37524edfdeaa2bc49e261ce4f42 Reviewed-on: https://pdfium-review.googlesource.com/31312 Reviewed-by: Nicolás Peña Moreno <npm@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
2018-04-13Patch lcms to mark data structures as const.chromium/3397Lei Zhang
BUG=pdfium:1015 Change-Id: I6b49d4a63fa197b489f6ff2a6920b7e65bb1279d Reviewed-on: https://pdfium-review.googlesource.com/30672 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-04-11Fix issues with PDFium third_party/base/span.hTom Sepez
Remove stray const in operator[] that was introduced when downgrading from C++14 to C++11 syntax. Add missing Get() in first() that was introduced when converting to UnownedPtr. Prevent ASAN from flagging spans where the UnownedPtr points to byte N+1 of a N byte object, and the span is empty. This is legal in C for ordinary pointers so long as the pointer isn't de-referenced, but is not allowed per the rules for UnownedPtr. Change-Id: Ic143c5ef4e37c1cf86f0a3e5408be6e2076a85e2 Reviewed-on: https://pdfium-review.googlesource.com/30212 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-04-09Make pdfium::span<> be based off of UnownedPtr<>.Tom Sepez
Because we can get the lifetime check for free if we do this. This requires adding some "constexpr/noexcept" to UnownedPtr to make the types line up with what span.h requires. Change-Id: I45918f8723122082036eed959f769644ab4c509f Reviewed-on: https://pdfium-review.googlesource.com/29672 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-04-06Add span.h from chromium base.chromium/3392Tom Sepez
Allows indexing with better bounds-checking to occur. Some small modifications are required to deal with PDFium being intentionally held at C++11 compliance, not C++14. Use in one place as check on correctness. Change-Id: Id2875cf0a93980112bc536a93c4f9ec5306c0dac Reviewed-on: https://pdfium-review.googlesource.com/29671 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Chris Palmer <palmer@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-04-03Roll pdfium/third_party/freetype/src/ 713d68ee9..7109495c5 (21 commits)Lei Zhang
https://chromium.googlesource.com/chromium/src/third_party/freetype2.git/+log/713d68ee9f47..7109495c5e6c $ git log 713d68ee9..7109495c5 --date=short --no-merges --format='%ad %ae %s' 2018-04-01 wl * builds/toplevel.mk (work): Use $(SEP). 2018-03-30 wl [truetype] Fix memory leak (only if tracing is on). 2018-03-26 apodtele Documentation improvement. 2018-03-24 wl Typo. 2018-03-23 kkushal32 Fixing cmake command format 2018-03-23 bungeman [sfnt] Correctly handle missing bitmaps in sbix format (#53404). 2018-03-23 bungeman [truetype] Fix advance of empty glyphs in bitmap fonts (#53393). 2018-03-22 wl Remove `ftlcdfil.c' and `ftfntfmt.c' from build files (#53415). 2018-03-13 wl * src/sfnt/ttcmap.c (tt_cmap2_validate): Fix potential numeric overflow. 2018-03-13 wl Fix cmap format 2 handling (#53320). 2018-03-10 madigens * CMakeLists.txt (BASE_SRCS): Update to changes from 2018-03-05. 2018-03-05 fanchunwei * CMakeLists.txt [win32]: Allow MSVC DLL builds (#53287). 2018-03-08 wl Typo. 2018-03-08 wl CHANGES: Document `--enable-freetype-config'. 2018-03-07 hugh.mcmaster Make installation of `freetype-config' optional (#53093). 2018-03-08 wl Minor: Update `CHANGES' and improve documentation in `modules.cfg'. 2018-03-05 wl Make `ftlcdfil.c' part of the `base' module. 2018-03-05 wl Make `ftfntfmt.c' part of the `base' module. 2018-03-03 wl Minor documentation improvement. 2018-03-01 wl * src/truetype/ttinterp.c (TT_RunIns): Fix tracing arguments. 2018-03-01 wl * builds/unix/configure.raw: Need HarfBuzz 1.3.0 or newer. Created with: roll-dep pdfium/third_party/freetype/src BUG=pdfium:1050 Change-Id: If78351c12589717151718a33db954503bd58922a Reviewed-on: https://pdfium-review.googlesource.com/29590 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-04-02Enable cfi-icall type generalization for libopenjpeg20Vlad Tsyrklevich
BUG=828069 Change-Id: I3bbcb696fcf7e587f1fcfd00454e47ec42a67713 Reviewed-on: https://pdfium-review.googlesource.com/29570 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-03-22Update gtest and gmock to 1.8.x.Lei Zhang
This applies parts of https://crrev.com/469551 and https://crrev.com/471303 to PDFium. Change-Id: Ifbb8e4c300bd276fe3c6fe60d19ebb1618be8936 Reviewed-on: https://pdfium-review.googlesource.com/28791 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-02-22Add namespaces to duplicated Skia code.Jonathan Feinberg
When pdfium is imported into Google's internal repository, the recently copied Skia decimal formatting code causes only-defined-once violations because many Google internal projects depends on Skia through Google's own copy. This patch puts pdfium's private copy of the needed function into a namespace. Change-Id: Id102b17f6f4652e4a50c4ff75825468fc3d90727 Reviewed-on: https://pdfium-review.googlesource.com/27530 Reviewed-by: Hal Canary <halcanary@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-16Improve performance of writing path floats.Dan Sinclair
This CL copies the SkPDF code to convert floats into strings when writing back to PDF files. Change-Id: I8f8af3924a07aa67f93b9d951af1eef5d2c705db Reviewed-on: https://pdfium-review.googlesource.com/21990 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: Hal Canary <halcanary@chromium.org>
2018-02-15Fix roll-freetype scriptNicolas Pena
In c3532457d457e868afb8506e047ab353f2651bc0, a cmp was added to the roller script, but it should be cp instead since we want both files to be the same. Change-Id: I12dc32ab1633196267537e4db3a3522058e44a9d Reviewed-on: https://pdfium-review.googlesource.com/26830 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
2018-02-02Remove third_party/build/build_config.h.Lei Zhang
Use build/build_config.h instead. Having two build_config.h files is confusing. Change-Id: I4bd9c76ab6d913ee0aaa8b2f9c17b94bfba2d128 Reviewed-on: https://pdfium-review.googlesource.com/25111 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Chris Palmer <palmer@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
2018-02-02Add asm.js to third_party/build/build_config.h.Henrique Nakashima
This reflects changes in the build_config.h from chromium/build/src. Bug: chromium:804907 Change-Id: I892bcf3bbf5d260c904f40536fa1f3c9e49a5ac6 Reviewed-on: https://pdfium-review.googlesource.com/25130 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-01-24Support compiling pdfium with emscripten.Henrique Nakashima
Bug: chromium:804907 Change-Id: I3562653fbc26d669d1e0a99894a69da032a0349e Reviewed-on: https://pdfium-review.googlesource.com/23810 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-01-16Add support for pdfium use partitionalloc on loongson platform.Wang Qing
Because system pagesize is 4K on general system, such as x86 etc. But Loongson have 16K system pagesize and unable to print pages with use print preview. Therefore, the relevant pagesize places needs to be changed. Also refer to: https://chromium.googlesource.com/chromium/src/+/0752dbc988222d7edef2ef7c4e19555089c35fdf Bug: 801045 R= palmer@chromium.org Change-Id: Icc5ceae7b8a66be0ced1abb448a80c23fa518f34 Reviewed-on: https://pdfium-review.googlesource.com/22735 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2018-01-10[OpenJPEG] Fix integer overflowNicolas Pena
Bug: 796812 Change-Id: I857f037028ea0e74544bdc7c8cd26b4b44e64ec4 Reviewed-on: https://pdfium-review.googlesource.com/22610 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
2018-01-09Add initial jumbo build support.Lei Zhang
Convert a bunch of targets that just work. BUG=pdfium:964 Change-Id: I485be45e9f6c74c2bba88313da176a49b32b9bba Reviewed-on: https://pdfium-review.googlesource.com/21970 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-01-08Reland "[CFI] Enable type generalization for LCMS"Vlad Tsyrklevich
This relands commit 7829b7048d5cf13a4f1a806fed57f2440d1b5dec. This uses a new version of clang with a fix for the LSan issue that caused the previous revert. Original change's description: > [CFI] Enable type generalization for LCMS > > Control Flow Integrity [1] indirect call checking verifies that function > pointers only call valid functions with a matching type signature. This > condition can be too strict, a common form of 'abstraction' relies on > function pointers being cast to generalize argument pointer types to > void*. > > In LCMS these failures occur because of casts of function pointers called > as both _cmsInterpFn16 (cmsInterpFunction.Lerp16) and _cmsOPTeval16Fn (as > an argument to _cmsPipelineSetOptimizationParameters) types making it > difficult to refactor out easily. Instead, enabling the type > generalization build config weakens the type checking performed for > CFI-icall to accomodate this common type of casts. > > [1] https://www.chromium.org/developers/testing/control-flow-integrity > > Bug: 785442 > Change-Id: Ib42fb1b4e152d5042b170698c2707ebb9e0cc1ee > Reviewed-on: https://pdfium-review.googlesource.com/19250 > Commit-Queue: dsinclair <dsinclair@chromium.org> > Reviewed-by: dsinclair <dsinclair@chromium.org> Bug: 785442 Change-Id: Ice696e4f496fa380f8af053577bde7e46c049590 Reviewed-on: https://pdfium-review.googlesource.com/22265 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-01-04Convert usages of pdfium::Optional to OptionalRyan Harrison
Change-Id: I29769f78eaad10c6a8b79e27524336c4f330377e Reviewed-on: https://pdfium-review.googlesource.com/22258 Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2017-12-19Fix use_system_freetype=true build when third_party/freetype is missingTom Anderson
BUG=pdfium:733 R=thestig@chromium.org Change-Id: I6beab792c0b8cb0d0e4f5ea8c6e6c3138ccade5f Reviewed-on: https://pdfium-review.googlesource.com/21470 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-12-12Roll pdfium/third_party/freetype/src/ bec14f688..2c048a8a6 (25 commits)chromium/3293Nicolas Pena
https://chromium.googlesource.com/chromium/src/third_party/freetype2.git/+log/bec14f688925..2c048a8a622e $ git log bec14f688..2c048a8a6 --date=short --no-merges --format='%ad %ae %s' 2017-12-11 wl Fix compiler warning (#52640). 2017-12-09 azzuro * builds/windows/vc2010/freetype.vcxproj: Adjust output directory. 2017-12-09 wl Fix `make setup dos', second try (#52622). 2017-12-08 wl Documentation fixes for the last few commits. 2017-12-08 wl [docmaker] Fix code section parsing. 2017-12-08 wl New `ftdriver.h' file, covering all driver modules. 2017-12-08 wl Move `ftdriver.h' to `ftdrv.h'. 2017-12-08 wl Fix access to uninitalized memory (#52613). 2017-12-08 wl Fix `make setup dos' (#52622). 2017-12-07 wl .mailmap: Add Ewald. 2017-12-07 wl Use ASCII only in public header files (#50858). 2017-12-07 wl Fix C++ compilation. 2017-12-07 wl Fix `make multi'. 2017-12-07 wl * include/freetype/config/ftheader.h: Some clean-up. 2017-12-06 wl * builds/symbian/bld.inf: Updated. 2017-12-06 wl New header file `ftparams.h' that collects all parameter tags. 2017-12-05 wl Improve tracing messages by using singular and plural forms. 2017-12-04 wl Update or fix links to use the https protocol instead of http. 2017-12-04 wl [truetype] Allow shared points in `cvar' table (#52532). 2017-11-28 wl [truetype] Improving tracing of composite glyphs. 2017-11-27 wl Allow (again) encoding vectors with more than 256 elements (#52464). 2017-11-27 jan.steffens Fix last commit (#52522). 2017-11-24 wl [unix] Install a massaged `ftoption.h' file (#51780). 2017-11-23 wl Minor. 2017-11-23 tor.andersson Silence unused function warnings. Created with: roll-dep pdfium/third_party/freetype/src R=dsinclair@chromium.org,npm@chromium.org,thestig@chromium.org Bug: pdfium:961 Change-Id: I6ada047f9a06a755c85544fca4e3b0d6c56d3bbc Reviewed-on: https://pdfium-review.googlesource.com/21010 Reviewed-by: Nicolás Peña Moreno <npm@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
2017-11-30Run clang-tidy modernize-use-nullptr on //third_party/pdfiumDan Sinclair
See the bugs and cxx post for justification and details: https://groups.google.com/a/chromium.org/forum/#!topic/cxx/RkOHzIK6Tq8 This change was done using clang-tidy as described here: https://chromium.googlesource.com/chromium/src/+/lkcr/docs/clang_tidy.md Bug: chromium:778942 Change-Id: I5d94299404647d231c0dc8ef8b75a6c0539f378c Reviewed-on: https://pdfium-review.googlesource.com/19972 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-11-30Run clang-tidy modernize-use-bool-literals on //third_party/pdfiumDan Sinclair
See the bugs and cxx post for justification and details: https://groups.google.com/a/chromium.org/forum/#!topic/cxx/RkOHzIK6Tq8 This change was done using clang-tidy as described here: https://chromium.googlesource.com/chromium/src/+/lkcr/docs/clang_tidy.md Bug: chromium:778955 Change-Id: Ib037ed749539e4380fb336fc6fa85648fc506118 Reviewed-on: https://pdfium-review.googlesource.com/19990 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-11-30Run clang-tidy modernize-use-auto on //third_party/pdfiumDan Sinclair
See the bugs and cxx post for justification and details: https://groups.google.com/a/chromium.org/forum/#!topic/cxx/RkOHzIK6Tq8 This change was done using clang-tidy as described here: https://chromium.googlesource.com/chromium/src/+/lkcr/docs/clang_tidy.md Bug: chromium:776257 Change-Id: I1f6637cde8b3e41825993a736bed6763dd7beacb Reviewed-on: https://pdfium-review.googlesource.com/19971 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-11-30Run clang-tidy modernize-use-equals-{delete,default} on //third_party/pdfiumDan Sinclair
See the bugs and cxx post for justification and details: https://groups.google.com/a/chromium.org/forum/#!topic/cxx/RkOHzIK6Tq8 This change was done using clang-tidy as described here: https://chromium.googlesource.com/chromium/src/+/lkcr/docs/clang_tidy.md In some cases the the tool leaves behind a string of commas where it replaced a member initializer list (https://bugs.llvm.org/show_bug.cgi?id=35051). They were cleaned up with: git diff --name-only | \ xargs sed -E -i 's/(^\s*|\)\s*):[ ,]*= default/\1 = default/' Bug: chromium:778959, chromium:778957 Change-Id: I23e60d3d6c8bc9e8574d425710a0441cb5510d6b Reviewed-on: https://pdfium-review.googlesource.com/19970 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-11-29Allow building pdfium against the system version of libpng.Andrew Weintraub
Bug: Change-Id: I0c930ca30637f58af3b60ed8f1383bd9234a1723 Reviewed-on: https://pdfium-review.googlesource.com/19850 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-11-29Revert "[CFI] Enable type generalization for LCMS"dsinclair
This reverts commit 7829b7048d5cf13a4f1a806fed57f2440d1b5dec. Reason for revert: Breaking the waterfall build. Looks like it's finding a leak it wasn't before? https://build.chromium.org/p/client.pdfium/builders/linux_xfa_asan_lsan/builds/2376/steps/embeddertests/logs/stdio Original change's description: > [CFI] Enable type generalization for LCMS > > Control Flow Integrity [1] indirect call checking verifies that function > pointers only call valid functions with a matching type signature. This > condition can be too strict, a common form of 'abstraction' relies on > function pointers being cast to generalize argument pointer types to > void*. > > In LCMS these failures occur because of casts of function pointers called > as both _cmsInterpFn16 (cmsInterpFunction.Lerp16) and _cmsOPTeval16Fn (as > an argument to _cmsPipelineSetOptimizationParameters) types making it > difficult to refactor out easily. Instead, enabling the type > generalization build config weakens the type checking performed for > CFI-icall to accomodate this common type of casts. > > [1] https://www.chromium.org/developers/testing/control-flow-integrity > > Bug: 785442 > Change-Id: Ib42fb1b4e152d5042b170698c2707ebb9e0cc1ee > Reviewed-on: https://pdfium-review.googlesource.com/19250 > Commit-Queue: dsinclair <dsinclair@chromium.org> > Reviewed-by: dsinclair <dsinclair@chromium.org> TBR=tsepez@chromium.org,dsinclair@chromium.org,vtsyrklevich@chromium.org Change-Id: Ib9c26eb017733d2bf02035415221475bfbfe55c9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 785442 Reviewed-on: https://pdfium-review.googlesource.com/19730 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-11-29[CFI] Enable type generalization for LCMSVlad Tsyrklevich
Control Flow Integrity [1] indirect call checking verifies that function pointers only call valid functions with a matching type signature. This condition can be too strict, a common form of 'abstraction' relies on function pointers being cast to generalize argument pointer types to void*. In LCMS these failures occur because of casts of function pointers called as both _cmsInterpFn16 (cmsInterpFunction.Lerp16) and _cmsOPTeval16Fn (as an argument to _cmsPipelineSetOptimizationParameters) types making it difficult to refactor out easily. Instead, enabling the type generalization build config weakens the type checking performed for CFI-icall to accomodate this common type of casts. [1] https://www.chromium.org/developers/testing/control-flow-integrity Bug: 785442 Change-Id: Ib42fb1b4e152d5042b170698c2707ebb9e0cc1ee Reviewed-on: https://pdfium-review.googlesource.com/19250 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-11-23Roll pdfium/third_party/freetype/src/ 8f5568bfc..bec14f688 (5 commits)chromium/3278Nicolas Pena
https://chromium.googlesource.com/chromium/src/third_party/freetype2.git/+log/8f5568bfc4fd..bec14f688925 $ git log 8f5568bfc..bec14f688 --date=short --no-merges --format='%ad %ae %s' 2017-11-22 ewaldhew * src/psaux/psft.c (cf2_setGlyphWidth): Check format before setting. 2017-11-22 ewaldhew [psaux] Fix CFF advance widths. (#52466) 2017-11-15 vtsyrklevich * include/freetype/ftrender.h: Fix `FT_Renderer_RenderFunc' type. 2017-11-14 madigens Use Adobe hinting engine for `light' hinting of both CFF and Type 1. 2017-11-09 yuri_levchenko * CMakeLists.txt: Add `DISABLE_FORCE_DEBUG_PREFIX' option. Created with: roll-dep pdfium/third_party/freetype/src R=dsinclair@chromium.org,npm@chromium.org,thestig@chromium.org Bug: pdfium:941 Change-Id: I00579a3e26d9cabce7032e0b538de95a1029bac7 Reviewed-on: https://pdfium-review.googlesource.com/19310 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
2017-11-07Fix PartitionAlloc cookies for small in-place reallocs.Lei Zhang
This ports the non-test portion of Chromium commit r514411 to PDFium. BUG=chromium:781473 Change-Id: Iab203edf3cb49a491aca5e524815a15e74f47581 Reviewed-on: https://pdfium-review.googlesource.com/17990 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-11-07Roll pdfium/third_party/freetype/src/ 91015cb41..8f5568bfc (5 commits)Nicolas Pena
https://chromium.googlesource.com/chromium/src/third_party/freetype2.git/+log/91015cb41d8f..8f5568bfc4fd $ git log 91015cb41..8f5568bfc --date=short --no-merges --format='%ad %ae %s' 2017-11-06 apodtele * src/base/ftobjs.c (FT_Load_Glyph): Relocate condition. 2017-11-06 apodtele * src/smooth/ftgrays.c (gray_set_cell): Fix uninitialized variables. 2017-10-21 ewaldhew [psaux] Fix PostScript interpreter rewinding in Type 1 mode. (#52251) 2017-11-03 mpsuzuki [truetype] Add more tricky fonts. 2017-11-01 apodtele [smooth] Fix complex rendering at high ppem. Created with: roll-dep pdfium/third_party/freetype/src R=dsinclair@chromium.org,npm@chromium.org,thestig@chromium.org Bug: pdfium:931 Change-Id: I304839c1a51e49284800de468d0f5f9389db8388 Reviewed-on: https://pdfium-review.googlesource.com/17982 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
2017-11-07Prevent an OOM error in libtiff.Lei Zhang
BUG=chromium:781582 Change-Id: I17711956884d1902cbd86f2163155b256402ecda Reviewed-on: https://pdfium-review.googlesource.com/17891 Reviewed-by: Chris Palmer <palmer@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-11-03Remove flags param from FXMEM_DefaultAlloc() and friends.Lei Zhang
Change-Id: I24404be0065156a1cfdec31bafdf72c27fa70142 Reviewed-on: https://pdfium-review.googlesource.com/17792 Reviewed-by: Chris Palmer <palmer@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-11-02Only use the yield instruction on architectures that support it.Andrew Weintraub
This is a downstream patch of https://crrev.com/502028. Change-Id: Ib78784093332a81a7afd6959c66f5e266540f6d3 Reviewed-on: https://pdfium-review.googlesource.com/17350 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-11-02Remove use of deprecated 'register' keywordHans Wennborg
Bug: chromium:780692 Change-Id: I16e7d071b1375e8a31e785141a8af5b4c103f81b Reviewed-on: https://pdfium-review.googlesource.com/17390 Commit-Queue: Lei Zhang <thestig@chromium.org> Commit-Queue: Hans Wennborg <hans@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-10-24Roll pdfium/third_party/freetype/src/ ae7dc1f62..91015cb41 (35 commits)Henrique Nakashima
https://chromium.googlesource.com/chromium/src/third_party/freetype2.git/+log/ae7dc1f62d82..91015cb41d8f $ git log ae7dc1f62..91015cb41 --date=short --no-merges --format='%ad %ae %s' 2017-10-21 apodtele [smooth] Improve complex rendering at high ppem. 2017-10-20 apodtele [base] Improve tracing in FT_Load_Glyph, FT_*_Size. 2017-10-18 apodtele [base] Improve tracing in FT_Render_Glyph. 2017-10-16 ewaldhew [cff] Fix segfault on missing `psaux' (#52218) 2017-10-15 apodtele [base, cff] Fix MSVC warnings. 2017-10-14 apodtele [base] Netpbm image tracing. 2017-10-14 apodtele * builds/windows/ftdebug.c (FT_Message): Print to stderr. 2017-10-14 behdad [afshaper] Delay creating `hb_set' objects until needed. 2017-10-12 ewaldhew * devel/ftoption.h: Enable T1_CONFIG_OPTION_OLD_ENGINE by default. 2017-10-12 ewaldhew [type1, cid] Add hinting engine switch. 2017-10-12 ewaldhew Add T1_CONFIG_OPTION_OLD_ENGINE configuration option. 2017-10-12 ewaldhew Extract width parsing from Type 1 parser. 2017-10-12 wl [autofit] Better visualize table tracing in source code. 2017-10-09 wl * src/base/ftoutln.c (FT_Outline_Translate): Fix integer overflow. 2017-10-08 wl * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Integer overflows. 2017-10-08 wl Document global size metrics needed for native bytecode hinting (#52165). 2017-10-08 wl Prevent creation of an incorrect documentation entry. 2017-10-07 wl [sfnt] Adjust behaviour of PS font names for variation fonts. 2017-10-07 wl [cff, truetype] Adjust behaviour of named instances. 2017-10-07 wl Make `FT_Set_Named_Instance' work. 2017-10-07 wl Make `FT_FACE_FLAG_VARIATION' work. 2017-10-07 wl New function `FT_Set_Named_Instance'. 2017-10-07 wl Add macros for checking whether a font variation is active. 2017-10-07 wl Add framework for setting named instance in MM service. 2017-10-07 wl [type1] Minor code shuffling. 2017-10-05 wl * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Fix integer overflow. 2017-10-05 wl Fix compiler warnings. 2017-10-04 John.Tytgat [cff] Add support for `FSType'. 2017-10-02 wl CHANGES: Formatting. 2017-10-01 wl [smooth,type1] Formatting, whitespace. 2017-10-01 wl [psaux] Formatting, minor fixes, whitespace, copyright notices. 2017-09-30 wl [base,cff,cid] Whitespace, formatting. 2017-09-30 wl [include] Whitespace. 2017-09-30 apodtele Signedness fixes in bitmap presetting. 2017-09-29 apodtele Bitmap metrics presetting [2/2]. Created with: roll-dep pdfium/third_party/freetype/src R=dsinclair@chromium.org,npm@chromium.org,thestig@chromium.org Bug: pdfium:918 Change-Id: I51ec11a612e54b88ddac40b64428cfaabfaec448 Reviewed-on: https://pdfium-review.googlesource.com/16650 Reviewed-by: Nicolás Peña Moreno <npm@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2017-10-23Upgrade LibopenJPEG to 2.3chromium/3249Nicolas Pena
Bug: Change-Id: I4c968a4e5f41037d80e5dc64a1297cd2cbda31b1 Reviewed-on: https://pdfium-review.googlesource.com/16350 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
2017-10-05Create FreeType roll scriptNicolas Pena
Change-Id: Ie93f74b683d35e859cc0e3a1dd5899fb073d8864 Reviewed-on: https://pdfium-review.googlesource.com/15570 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
2017-10-02Remove extraneous ;sDan Sinclair
Bug: pdfium:912 Change-Id: Iea61260ccc972627950b470a44ab21dbd2b4045b Reviewed-on: https://pdfium-review.googlesource.com/15170 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-09-27Enable PRINTF_FORMAT for clangDan Sinclair
This ports https://chromium-review.googlesource.com/c/chromium/src/+/599127 from Chromium to PDFium. Because VC++ does not have format-string checking for user-defined functions during normal compiles, because clang-cl had its format-string checking disabled, because some files are only compiled on Windows, and because VC++'s /analyze doesn't build all targets, and because VC++'s format-string checking is more lenient than clang's... 50 warnings about format-string mismatches crept in to Chromium's build. Seven of these were somewhat serious, with four being wchar_t*/char* mismatches because of base::FilePath and the other three being size_t/%d mismatches. Now that all of the mismatches are corrected this change enables PRINTF_FORMAT checking with clang-cl so that these bugs never return. Bug: pdfium:909 Change-Id: I683592f5015b31b4dd04dfe81e6866389b544efe Reviewed-on: https://pdfium-review.googlesource.com/14834 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-09-27Remove FX_CPU=FX_WIN64 build flagDan Sinclair
The FX_WIN64 flag is a FX_OS flag, so comparing against FX_CPU doesn't make sense. Removed check. Bug: pdfium:906 Change-Id: I029de8cf89ade590f705556351416f4759bca87a Reviewed-on: https://pdfium-review.googlesource.com/14812 Commit-Queue: Nicolás Peña Moreno <npm@chromium.org> Reviewed-by: Nicolás Peña Moreno <npm@chromium.org>
2017-09-27Cleanup FX macrosDan Sinclair
This CL renames the FX_OS defines to have _OS_ in their names and drops the _DESKTOP suffix. The FXM defines have been changed to just FX. Change-Id: Iab172fba541713b5f6d14fb8098baf68e3364c74 Reviewed-on: https://pdfium-review.googlesource.com/14833 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-09-20Get system lcms2 config using pkg-config.Lei Zhang
BUG=chromium:765914 Change-Id: I187507cd87ff5d88be37ce07216ffa3d7ff7bb83 Reviewed-on: https://pdfium-review.googlesource.com/14411 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-09-18Roll DEPS for build to e659d43.Lei Zhang
Add third_party/eu-strip, which is now required to build on Android. Since third_party/eu-strip is small and rarely updated, just check in a copy. Change-Id: Iba016d8d69c8426f1dacbeeef36b30ca743c46f0 Reviewed-on: https://pdfium-review.googlesource.com/13411 Commit-Queue: (000 09-08 - 09-18) dsinclair <dsinclair@chromium.org> Reviewed-by: (000 09-08 - 09-18) dsinclair <dsinclair@chromium.org>