summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--download.lst4
-rw-r--r--external/pdfium/Library_pdfium.mk12
-rw-r--r--external/pdfium/build.patch.1109
-rw-r--r--external/pdfium/inc/pch/precompiled_pdfium.hxx16
-rw-r--r--external/pdfium/ubsan.patch8
-rw-r--r--solenv/flatpak-manifest.in6
-rw-r--r--vcl/qa/cppunit/PDFiumLibraryTest.cxx6
-rw-r--r--vcl/source/pdf/PDFiumLibrary.cxx9
8 files changed, 148 insertions, 22 deletions
diff --git a/download.lst b/download.lst
index 05b5b8b8e8fc..30fd66f58351 100644
--- a/download.lst
+++ b/download.lst
@@ -208,8 +208,8 @@ export ORCUS_SHA256SUM := c700d1325f744104d9fca0d5a019434901e9d51a16eedfb05792f9
export ORCUS_TARBALL := liborcus-0.16.1.tar.bz2
export PAGEMAKER_SHA256SUM := 66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d
export PAGEMAKER_TARBALL := libpagemaker-0.0.4.tar.xz
-export PDFIUM_SHA256SUM := 26a03dd60e5ed0979cdaba9cc848242895110ddfdf347d40989ce2f14020f304
-export PDFIUM_TARBALL := pdfium-4500.tar.bz2
+export PDFIUM_SHA256SUM := b0c5725e1cdcef7f52f068fd33adf9e8d833a271c28ba5b6a5a576ef8f2bbbf4
+export PDFIUM_TARBALL := pdfium-4568.tar.bz2
export PIXMAN_SHA256SUM := 21b6b249b51c6800dc9553b65106e1e37d0e25df942c90531d4c3997aa20a88e
export PIXMAN_TARBALL := e80ebae4da01e77f68744319f01d52a3-pixman-0.34.0.tar.gz
export LIBPNG_SHA256SUM := 505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca
diff --git a/external/pdfium/Library_pdfium.mk b/external/pdfium/Library_pdfium.mk
index e048c8dab0d5..1cec5c19573d 100644
--- a/external/pdfium/Library_pdfium.mk
+++ b/external/pdfium/Library_pdfium.mk
@@ -77,6 +77,12 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_interactiveform \
UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_renderpage \
UnpackedTarball/pdfium/fpdfsdk/fpdf_signature \
+ UnpackedTarball/pdfium/constants/annotation_common \
+ UnpackedTarball/pdfium/constants/appearance \
+ UnpackedTarball/pdfium/constants/form_fields \
+ UnpackedTarball/pdfium/constants/page_object \
+ UnpackedTarball/pdfium/constants/stream_dict_common \
+ UnpackedTarball/pdfium/constants/transparency \
))
# fdrm
@@ -90,7 +96,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_checkbox \
UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_combobox \
- UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_formfiller \
+ UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_formfield \
UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_interactiveformfiller \
UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_listbox \
UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_pushbutton \
@@ -347,7 +353,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_SymbolDict \
UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_TrdProc \
UnpackedTarball/pdfium/core/fxcodec/gif/cfx_gif \
- UnpackedTarball/pdfium/core/fxcodec/gif/cfx_lzwdecompressor \
+ UnpackedTarball/pdfium/core/fxcodec/gif/lzw_decompressor \
UnpackedTarball/pdfium/core/fxcodec/cfx_codec_memory \
UnpackedTarball/pdfium/core/fxcodec/fax/faxmodule \
UnpackedTarball/pdfium/core/fxcodec/scanlinedecoder \
@@ -460,7 +466,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
UnpackedTarball/pdfium/core/fxge/cfx_gemodule \
UnpackedTarball/pdfium/core/fxge/cfx_graphstate \
UnpackedTarball/pdfium/core/fxge/cfx_graphstatedata \
- UnpackedTarball/pdfium/core/fxge/cfx_pathdata \
+ UnpackedTarball/pdfium/core/fxge/cfx_path \
UnpackedTarball/pdfium/core/fxge/cfx_renderdevice \
UnpackedTarball/pdfium/core/fxge/cfx_substfont \
UnpackedTarball/pdfium/core/fxge/cfx_unicodeencoding \
diff --git a/external/pdfium/build.patch.1 b/external/pdfium/build.patch.1
index 9d48b022fae2..b4c69ba00f84 100644
--- a/external/pdfium/build.patch.1
+++ b/external/pdfium/build.patch.1
@@ -38,12 +38,115 @@ index 0fb627ba8..dda1fc8bc 100644
template <
typename Container,
diff --git a/core/fxcodec/jpx/cjpx_decoder.cpp b/core/fxcodec/jpx/cjpx_decoder.cpp
-index dbc1b1045..36b72461d 100644
+index c66985a7f..9c1122b75 100644
--- a/core/fxcodec/jpx/cjpx_decoder.cpp
+++ b/core/fxcodec/jpx/cjpx_decoder.cpp
-@@ -70,7 +70,7 @@ Optional<OpjImageRgbData> alloc_rgb(size_t size) {
+@@ -6,6 +6,8 @@
+
+ #include "core/fxcodec/jpx/cjpx_decoder.h"
+
++#include <string.h>
++
+ #include <algorithm>
+ #include <limits>
+ #include <utility>
+diff --git a/core/fxcodec/jpeg/jpegmodule.cpp b/core/fxcodec/jpeg/jpegmodule.cpp
+index cea0679aa..036f25003 100644
+--- a/core/fxcodec/jpeg/jpegmodule.cpp
++++ b/core/fxcodec/jpeg/jpegmodule.cpp
+@@ -7,6 +7,7 @@
+ #include "core/fxcodec/jpeg/jpegmodule.h"
+
+ #include <setjmp.h>
++#include <string.h>
+
+ #include <memory>
+ #include <utility>
+diff --git a/core/fxge/dib/cfx_bitmapcomposer.cpp b/core/fxge/dib/cfx_bitmapcomposer.cpp
+index 6f9b42013..0f1ffae2c 100644
+--- a/core/fxge/dib/cfx_bitmapcomposer.cpp
++++ b/core/fxge/dib/cfx_bitmapcomposer.cpp
+@@ -6,6 +6,8 @@
+
+ #include "core/fxge/dib/cfx_bitmapcomposer.h"
+
++#include <string.h>
++
+ #include "core/fxge/cfx_cliprgn.h"
+ #include "core/fxge/dib/cfx_dibitmap.h"
+
+diff --git a/core/fxge/dib/cfx_dibitmap.cpp b/core/fxge/dib/cfx_dibitmap.cpp
+index d7ccf6cfa..94e8accdd 100644
+--- a/core/fxge/dib/cfx_dibitmap.cpp
++++ b/core/fxge/dib/cfx_dibitmap.cpp
+@@ -6,6 +6,8 @@
+
+ #include "core/fxge/dib/cfx_dibitmap.h"
+
++#include <string.h>
++
+ #include <limits>
+ #include <memory>
+ #include <utility>
+diff --git a/core/fxge/dib/cfx_bitmapstorer.cpp b/core/fxge/dib/cfx_bitmapstorer.cpp
+index f57c00eaa..45a0a180c 100644
+--- a/core/fxge/dib/cfx_bitmapstorer.cpp
++++ b/core/fxge/dib/cfx_bitmapstorer.cpp
+@@ -6,6 +6,8 @@
+
+ #include "core/fxge/dib/cfx_bitmapstorer.h"
+
++#include <string.h>
++
+ #include <utility>
+
+ #include "core/fxge/dib/cfx_dibitmap.h"
+diff --git a/core/fxge/cfx_cliprgn.cpp b/core/fxge/cfx_cliprgn.cpp
+index 5369d522c..d198852e3 100644
+--- a/core/fxge/cfx_cliprgn.cpp
++++ b/core/fxge/cfx_cliprgn.cpp
+@@ -6,6 +6,8 @@
+
+ #include "core/fxge/cfx_cliprgn.h"
+
++#include <string.h>
++
+ #include <utility>
+
+ #include "core/fxge/dib/cfx_dibitmap.h"
+diff --git a/core/fxge/dib/cfx_scanlinecompositor.cpp b/core/fxge/dib/cfx_scanlinecompositor.cpp
+index e8362d708..c04c6dcab 100644
+--- a/core/fxge/dib/cfx_scanlinecompositor.cpp
++++ b/core/fxge/dib/cfx_scanlinecompositor.cpp
+@@ -6,6 +6,8 @@
+
+ #include "core/fxge/dib/cfx_scanlinecompositor.h"
+
++#include <string.h>
++
+ #include <algorithm>
+
+ #include "core/fxge/dib/fx_dib.h"
+diff --git a/core/fxge/dib/cfx_dibbase.cpp b/core/fxge/dib/cfx_dibbase.cpp
+index 4ec0ddbf9..a1de2fbec 100644
+--- a/core/fxge/dib/cfx_dibbase.cpp
++++ b/core/fxge/dib/cfx_dibbase.cpp
+@@ -6,6 +6,8 @@
+
+ #include "core/fxge/dib/cfx_dibbase.h"
+
++#include <string.h>
++
+ #include <algorithm>
+ #include <memory>
+ #include <utility>
+diff --git a/core/fxcodec/jpx/cjpx_decoder.cpp b/core/fxcodec/jpx/cjpx_decoder.cpp
+index c66985a7f..817f81dfa 100644
+--- a/core/fxcodec/jpx/cjpx_decoder.cpp
++++ b/core/fxcodec/jpx/cjpx_decoder.cpp
+@@ -71,7 +71,7 @@ Optional<OpjImageRgbData> alloc_rgb(size_t size) {
if (!data.b)
- return {};
+ return pdfium::nullopt;
- return data;
+ return std::move(data);
diff --git a/external/pdfium/inc/pch/precompiled_pdfium.hxx b/external/pdfium/inc/pch/precompiled_pdfium.hxx
index d12256852e72..f01e704c7ee4 100644
--- a/external/pdfium/inc/pch/precompiled_pdfium.hxx
+++ b/external/pdfium/inc/pch/precompiled_pdfium.hxx
@@ -46,6 +46,7 @@
#include <limits>
#include <list>
#include <map>
+#include <math.h>
#include <memory>
#include <numeric>
#include <ostream>
@@ -53,6 +54,7 @@
#include <setjmp.h>
#include <sstream>
#include <stack>
+#include <stdarg.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
@@ -70,6 +72,7 @@
#include <constants/access_permissions.h>
#include <constants/annotation_common.h>
#include <constants/annotation_flags.h>
+#include <constants/appearance.h>
#include <constants/form_fields.h>
#include <constants/form_flags.h>
#include <constants/page_object.h>
@@ -241,7 +244,7 @@
#include <core/fxcodec/flate/flatemodule.h>
#include <core/fxcodec/fx_codec.h>
#include <core/fxcodec/gif/cfx_gif.h>
-#include <core/fxcodec/gif/cfx_lzwdecompressor.h>
+#include <core/fxcodec/gif/lzw_decompressor.h>
#include <core/fxcodec/icc/iccmodule.h>
#include <core/fxcodec/jbig2/JBig2_ArithDecoder.h>
#include <core/fxcodec/jbig2/JBig2_ArithIntDecoder.h>
@@ -320,6 +323,9 @@
#include <core/fxcrt/observed_ptr.h>
#include <core/fxcrt/pauseindicator_iface.h>
#include <core/fxcrt/retain_ptr.h>
+#include <core/fxcrt/scoped_set_insertion.h>
+#include <core/fxcrt/span_util.h>
+#include <core/fxcrt/stl_util.h>
#include <core/fxcrt/string_data_template.h>
#include <core/fxcrt/string_pool_template.h>
#include <core/fxcrt/unowned_ptr.h>
@@ -348,7 +354,7 @@
#include <core/fxge/cfx_glyphcache.h>
#include <core/fxge/cfx_graphstate.h>
#include <core/fxge/cfx_graphstatedata.h>
-#include <core/fxge/cfx_pathdata.h>
+#include <core/fxge/cfx_path.h>
#include <core/fxge/cfx_renderdevice.h>
#include <core/fxge/cfx_substfont.h>
#include <core/fxge/cfx_textrenderoptions.h>
@@ -396,7 +402,7 @@
#include <fpdfsdk/formfiller/cffl_button.h>
#include <fpdfsdk/formfiller/cffl_checkbox.h>
#include <fpdfsdk/formfiller/cffl_combobox.h>
-#include <fpdfsdk/formfiller/cffl_formfiller.h>
+#include <fpdfsdk/formfiller/cffl_formfield.h>
#include <fpdfsdk/formfiller/cffl_interactiveformfiller.h>
#include <fpdfsdk/formfiller/cffl_listbox.h>
#include <fpdfsdk/formfiller/cffl_privatedata.h>
@@ -472,16 +478,18 @@
#include <third_party/base/check_op.h>
#include <third_party/base/compiler_specific.h>
#include <third_party/base/containers/adapters.h>
+#include <third_party/base/containers/contains.h>
+#include <third_party/base/cxx17_backports.h>
#include <third_party/base/debug/alias.h>
#include <third_party/base/memory/aligned_memory.h>
#include <third_party/base/no_destructor.h>
#include <third_party/base/notreached.h>
+#include <third_party/base/numerics/ranges.h>
#include <third_party/base/numerics/safe_conversions.h>
#include <third_party/base/numerics/safe_math.h>
#include <third_party/base/optional.h>
#include <third_party/base/ptr_util.h>
#include <third_party/base/span.h>
-#include <third_party/base/stl_util.h>
#include <third_party/skia_shared/SkFloatToDecimal.h>
#endif // PCH_LEVEL >= 3
#if PCH_LEVEL >= 4
diff --git a/external/pdfium/ubsan.patch b/external/pdfium/ubsan.patch
index cd48b3ee4803..bc9868244275 100644
--- a/external/pdfium/ubsan.patch
+++ b/external/pdfium/ubsan.patch
@@ -1,9 +1,9 @@
--- core/fxcrt/string_data_template.cpp
+++ core/fxcrt/string_data_template.cpp
-@@ -83,7 +83,8 @@ void StringDataTemplate<CharType>::CopyContentsAt(size_t offset,
- DCHECK(nLen >= 0);
- DCHECK(offset + nLen <= m_nAllocLength);
-
+@@ -82,7 +82,8 @@ void StringDataTemplate<CharType>::CopyContentsAt(size_t offset,
+ DCHECK_GE(offset, 0);
+ DCHECK_GE(nLen, 0);
+ DCHECK_LE(offset + nLen, m_nAllocLength);
- memcpy(m_String + offset, pStr, nLen * sizeof(CharType));
+ if (nLen != 0)
+ memcpy(m_String + offset, pStr, nLen * sizeof(CharType));
diff --git a/solenv/flatpak-manifest.in b/solenv/flatpak-manifest.in
index 7fe9650e8474..077adb03cbc5 100644
--- a/solenv/flatpak-manifest.in
+++ b/solenv/flatpak-manifest.in
@@ -75,11 +75,11 @@
"type": "shell"
},
{
- "url": "https://dev-www.libreoffice.org/src/pdfium-4500.tar.bz2",
- "sha256": "26a03dd60e5ed0979cdaba9cc848242895110ddfdf347d40989ce2f14020f304",
+ "url": "https://dev-www.libreoffice.org/src/pdfium-4568.tar.bz2",
+ "sha256": "b0c5725e1cdcef7f52f068fd33adf9e8d833a271c28ba5b6a5a576ef8f2bbbf4",
"type": "file",
"dest": "external/tarballs",
- "dest-filename": "pdfium-4500.tar.bz2"
+ "dest-filename": "pdfium-4568.tar.bz2"
},
{
"url": "https://dev-www.libreoffice.org/src/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz",
diff --git a/vcl/qa/cppunit/PDFiumLibraryTest.cxx b/vcl/qa/cppunit/PDFiumLibraryTest.cxx
index 707d60fd1c3b..9ba40c438f50 100644
--- a/vcl/qa/cppunit/PDFiumLibraryTest.cxx
+++ b/vcl/qa/cppunit/PDFiumLibraryTest.cxx
@@ -144,7 +144,11 @@ void PDFiumLibraryTest::testPageObjects()
CPPUNIT_ASSERT_EQUAL(COL_BLACK, pPageObject->getFillColor());
CPPUNIT_ASSERT_EQUAL(COL_BLACK, pPageObject->getStrokeColor());
- CPPUNIT_ASSERT_EQUAL(true, pPageObject->getMatrix().isIdentity());
+ basegfx::B2DHomMatrix aMatrix = pPageObject->getMatrix();
+ // Ignore translation, ensure there is no rotate/scale.
+ aMatrix.set(0, 2, 0);
+ aMatrix.set(1, 2, 0);
+ CPPUNIT_ASSERT_EQUAL(true, aMatrix.isIdentity());
CPPUNIT_ASSERT_DOUBLES_EQUAL(057.01, pPageObject->getBounds().getMinX(), 1E-2);
CPPUNIT_ASSERT_DOUBLES_EQUAL(721.51, pPageObject->getBounds().getMinY(), 1E-2);
diff --git a/vcl/source/pdf/PDFiumLibrary.cxx b/vcl/source/pdf/PDFiumLibrary.cxx
index adfa4db4fa45..28b8e8f3e309 100644
--- a/vcl/source/pdf/PDFiumLibrary.cxx
+++ b/vcl/source/pdf/PDFiumLibrary.cxx
@@ -783,7 +783,7 @@ basegfx::B2DHomMatrix PDFiumPageObjectImpl::getMatrix()
{
basegfx::B2DHomMatrix aB2DMatrix;
FS_MATRIX matrix;
- if (FPDFFormObj_GetMatrix(mpPageObject, &matrix))
+ if (FPDFPageObj_GetMatrix(mpPageObject, &matrix))
aB2DMatrix = basegfx::B2DHomMatrix::abcdef(matrix.a, matrix.b, matrix.c, matrix.d, matrix.e,
matrix.f);
return aB2DMatrix;
@@ -804,7 +804,12 @@ basegfx::B2DRectangle PDFiumPageObjectImpl::getBounds()
return aB2DRectangle;
}
-double PDFiumPageObjectImpl::getFontSize() { return FPDFTextObj_GetFontSize(mpPageObject); }
+double PDFiumPageObjectImpl::getFontSize()
+{
+ float nSize{};
+ FPDFTextObj_GetFontSize(mpPageObject, &nSize);
+ return nSize;
+}
OUString PDFiumPageObjectImpl::getFontName()
{