diff options
-rw-r--r-- | external/pdfium/UnpackedTarball_pdfium.mk | 3 | ||||
-rw-r--r-- | external/pdfium/ubsan.patch | 19 |
2 files changed, 22 insertions, 0 deletions
diff --git a/external/pdfium/UnpackedTarball_pdfium.mk b/external/pdfium/UnpackedTarball_pdfium.mk index 0cad0169e1b6..17ddd9bd1029 100644 --- a/external/pdfium/UnpackedTarball_pdfium.mk +++ b/external/pdfium/UnpackedTarball_pdfium.mk @@ -13,11 +13,14 @@ pdfium_patches += visibility.patch.1 pdfium_patches += msvc.patch.1 # To support macOS 10.9 baseline. pdfium_patches += macos.patch.1 +pdfium_patches += ubsan.patch $(eval $(call gb_UnpackedTarball_UnpackedTarball,pdfium)) $(eval $(call gb_UnpackedTarball_set_tarball,pdfium,$(PDFIUM_TARBALL))) +$(eval $(call gb_UnpackedTarball_set_patchlevel,pdfium,0)) + $(eval $(call gb_UnpackedTarball_add_patches,pdfium,\ $(foreach patch,$(pdfium_patches),external/pdfium/$(patch)) \ )) diff --git a/external/pdfium/ubsan.patch b/external/pdfium/ubsan.patch new file mode 100644 index 000000000000..08864b3a63b9 --- /dev/null +++ b/external/pdfium/ubsan.patch @@ -0,0 +1,19 @@ +--- third_party/agg23/agg_rasterizer_scanline_aa.h ++++ third_party/agg23/agg_rasterizer_scanline_aa.h +@@ -349,14 +349,14 @@ + cover += cur_cell->cover; + } + if(area) { +- alpha = calculate_alpha((cover << (poly_base_shift + 1)) - area, no_smooth); ++ alpha = calculate_alpha(int(unsigned(cover) << (poly_base_shift + 1)) - area, no_smooth); + if(alpha) { + sl.add_cell(x, alpha); + } + x++; + } + if(num_cells && cur_cell->x > x) { +- alpha = calculate_alpha(cover << (poly_base_shift + 1), no_smooth); ++ alpha = calculate_alpha(unsigned(cover) << (poly_base_shift + 1), no_smooth); + if(alpha) { + sl.add_span(x, cur_cell->x - x, alpha); + } |