summaryrefslogtreecommitdiff
path: root/fxjs/cjs_publicmethods.cpp
diff options
context:
space:
mode:
authorVlad Tsyrklevich <vtsyrklevich@chromium.org>2018-01-04 16:39:45 -0800
committerChromium commit bot <commit-bot@chromium.org>2018-01-08 15:06:51 +0000
commitdc36f99188feec82454f62d5f489f358dc5fd9c1 (patch)
tree9a505d3183a445435a84f7a367c34fdfaa9cc26f /fxjs/cjs_publicmethods.cpp
parentec24b2e338de2a6211723f19f54386c950ac5010 (diff)
downloadpdfium-dc36f99188feec82454f62d5f489f358dc5fd9c1.tar.xz
Reland "[CFI] Enable type generalization for LCMS"
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>
Diffstat (limited to 'fxjs/cjs_publicmethods.cpp')
0 files changed, 0 insertions, 0 deletions