[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#945845: marked as done (buster-pu: package qtwebengine-opensource-src/5.11.3+dfsg-2+deb10u1)



Your message dated Sat, 08 Feb 2020 14:21:36 +0000
with message-id <cf1cb2f35981916a86b98b83609df15c95aa378b.camel@adam-barratt.org.uk>
and subject line Closing requests included in 10.3 point release
has caused the Debian Bug report #945845,
regarding buster-pu: package qtwebengine-opensource-src/5.11.3+dfsg-2+deb10u1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
945845: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=945845
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian.org@packages.debian.org
Usertags: pu

Dear Release team,

This update fixes bug #919504 that is also known as #929286, #931860, #933278
and #945147.

The debdiff is attached. Please see the header of the added patch for the
description of the fix.

--
Dmitry Shachnev
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+qtwebengine-opensource-src (5.11.3+dfsg-2+deb10u1) buster; urgency=medium
+
+  * Fix PDF parsing by adding the missing non-const overrides for
+    CPDF_Dictionary::GetDict() and CPDF_Reference::GetDict(). This also
+    fixes QWebEnginePage::print() method (closes: #919504).
+
+ -- Dmitry Shachnev <mitya57@debian.org>  Fri, 29 Nov 2019 23:04:08 +0300
+
 qtwebengine-opensource-src (5.11.3+dfsg-2) unstable; urgency=medium
 
   [ Dmitry Shachnev ]
--- /dev/null
+++ b/debian/patches/getdict-overrides.patch
@@ -0,0 +1,80 @@
+Description: fix GetDict methods in CPDF_Object descendants
+ In commit [1], Qt WebEngine developers backported a change to cpdf_object.h
+ that splits GetDict() virtual method into two: const and non-const.
+ .
+ However, this change was not applied to CPDF_Dictionary and CPDF_Reference
+ that are descendant classes of CPDF_Object. So they were missing the non-const
+ override, and the method from base class CPDF_Object was used instead (which
+ always returns nullptr).
+ .
+ In upstream PDFium, all files were changed in [2], so the bug was specific to
+ Qt WebEngine 5.11 (Chromium 65-based) branch.
+ .
+ [1]: https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?id=bc188914f3ce1d2c
+ [2]: https://pdfium.googlesource.com/pdfium/+/7e28208d26764438
+Author: Dmitry Shachnev <mitya57@debian.org>
+Last-Update: 2019-11-29
+
+--- a/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/parser/cpdf_dictionary.cpp
++++ b/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/parser/cpdf_dictionary.cpp
+@@ -42,10 +42,12 @@ CPDF_Object::Type CPDF_Dictionary::GetTy
+   return DICTIONARY;
+ }
+ 
+-CPDF_Dictionary* CPDF_Dictionary::GetDict() const {
+-  // The method should be made non-const if we want to not be const.
+-  // See bug #234.
+-  return const_cast<CPDF_Dictionary*>(this);
++CPDF_Dictionary* CPDF_Dictionary::GetDict() {
++  return this;
++}
++
++const CPDF_Dictionary* CPDF_Dictionary::GetDict() const {
++  return this;
+ }
+ 
+ bool CPDF_Dictionary::IsDictionary() const {
+--- a/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/parser/cpdf_dictionary.h
++++ b/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/parser/cpdf_dictionary.h
+@@ -33,7 +33,8 @@ class CPDF_Dictionary : public CPDF_Obje
+   // CPDF_Object:
+   Type GetType() const override;
+   std::unique_ptr<CPDF_Object> Clone() const override;
+-  CPDF_Dictionary* GetDict() const override;
++  CPDF_Dictionary* GetDict() override;
++  const CPDF_Dictionary* GetDict() const override;
+   bool IsDictionary() const override;
+   CPDF_Dictionary* AsDictionary() override;
+   const CPDF_Dictionary* AsDictionary() const override;
+--- a/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/parser/cpdf_reference.cpp
++++ b/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/parser/cpdf_reference.cpp
+@@ -35,11 +35,16 @@ int CPDF_Reference::GetInteger() const {
+   return obj ? obj->GetInteger() : 0;
+ }
+ 
+-CPDF_Dictionary* CPDF_Reference::GetDict() const {
++CPDF_Dictionary* CPDF_Reference::GetDict() {
+   CPDF_Object* obj = SafeGetDirect();
+   return obj ? obj->GetDict() : nullptr;
+ }
+ 
++const CPDF_Dictionary* CPDF_Reference::GetDict() const {
++  const CPDF_Object* obj = SafeGetDirect();
++  return obj ? obj->GetDict() : nullptr;
++}
++
+ bool CPDF_Reference::IsReference() const {
+   return true;
+ }
+--- a/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/parser/cpdf_reference.h
++++ b/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/parser/cpdf_reference.h
+@@ -27,7 +27,8 @@ class CPDF_Reference : public CPDF_Objec
+   ByteString GetString() const override;
+   float GetNumber() const override;
+   int GetInteger() const override;
+-  CPDF_Dictionary* GetDict() const override;
++  CPDF_Dictionary* GetDict() override;
++  const CPDF_Dictionary* GetDict() const override;
+   bool IsReference() const override;
+   CPDF_Reference* AsReference() override;
+   const CPDF_Reference* AsReference() const override;
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,3 +6,4 @@ no-icudtl-dat.patch
 disable-last_commit_position.patch
 verbose-gn-bootstrap.patch
 fix-gcc-8-i386.patch
+getdict-overrides.patch

Attachment: signature.asc
Description: PGP signature


--- End Message ---
--- Begin Message ---
Package: release.debian.org
Version: 10.3

Hi,

Each of the uploads referred to by these bugs was included in today's
stable point release.

Regards,

Adam

--- End Message ---

Reply to: