[poppler] poppler/Form.h qt5/src qt6/src

2021-03-09 Thread GitLab Mirror
 poppler/Form.h  |2 +-
 qt5/src/poppler-document.cc |2 +-
 qt6/src/poppler-document.cc |2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 6267bf4dadf85842f73e32cf8abf056f150d1bf2
Author: Albert Astals Cid 
Date:   Tue Mar 9 19:54:38 2021 +0100

Update (C)

diff --git a/poppler/Form.h b/poppler/Form.h
index 247fc141..f978958d 100644
--- a/poppler/Form.h
+++ b/poppler/Form.h
@@ -6,7 +6,7 @@
 //
 // Copyright 2006 Julien Rebetez 
 // Copyright 2007, 2008, 2011 Carlos Garcia Campos 
-// Copyright 2007-2010, 2012, 2015-2020 Albert Astals Cid 
+// Copyright 2007-2010, 2012, 2015-2021 Albert Astals Cid 
 // Copyright 2010 Mark Riedesel 
 // Copyright 2011 Pino Toscano 
 // Copyright 2012 Fabio D'Urso 
diff --git a/qt5/src/poppler-document.cc b/qt5/src/poppler-document.cc
index c7d38be2..762eba9f 100644
--- a/qt5/src/poppler-document.cc
+++ b/qt5/src/poppler-document.cc
@@ -1,7 +1,7 @@
 /* poppler-document.cc: qt interface to poppler
  * Copyright (C) 2005, Net Integration Technologies, Inc.
  * Copyright (C) 2005, 2008, Brad Hards 
- * Copyright (C) 2005-2010, 2012, 2013, 2015, 2017-2020, Albert Astals Cid 

+ * Copyright (C) 2005-2010, 2012, 2013, 2015, 2017-2021, Albert Astals Cid 

  * Copyright (C) 2006-2010, Pino Toscano 
  * Copyright (C) 2010, 2011 Hib Eris 
  * Copyright (C) 2012 Koji Otani 
diff --git a/qt6/src/poppler-document.cc b/qt6/src/poppler-document.cc
index 150cca0a..8aaa0e79 100644
--- a/qt6/src/poppler-document.cc
+++ b/qt6/src/poppler-document.cc
@@ -1,7 +1,7 @@
 /* poppler-document.cc: qt interface to poppler
  * Copyright (C) 2005, Net Integration Technologies, Inc.
  * Copyright (C) 2005, 2008, Brad Hards 
- * Copyright (C) 2005-2010, 2012, 2013, 2015, 2017-2020, Albert Astals Cid 

+ * Copyright (C) 2005-2010, 2012, 2013, 2015, 2017-2021, Albert Astals Cid 

  * Copyright (C) 2006-2010, Pino Toscano 
  * Copyright (C) 2010, 2011 Hib Eris 
  * Copyright (C) 2012 Koji Otani 
___
poppler mailing list
poppler@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/poppler


[poppler] poppler/Form.cc poppler/Form.h qt5/src qt6/src

2021-03-09 Thread GitLab Mirror
 poppler/Form.cc |   12 
 poppler/Form.h  |2 ++
 qt5/src/poppler-document.cc |2 +-
 qt6/src/poppler-document.cc |2 +-
 4 files changed, 16 insertions(+), 2 deletions(-)

New commits:
commit 59d5036451cc55f57e15e4ae1538024c62452978
Author: Albert Astals Cid 
Date:   Tue Mar 9 17:53:00 2021 +0100

qt: Fix crash in files with malformed signatures

For signatures we need the formwidget, so even if they don't have the
Subtype Widget create one when asked for signatures in the document

Fixes KDE bug #433909

diff --git a/poppler/Form.cc b/poppler/Form.cc
index 9937eefd..4d42aedf 100644
--- a/poppler/Form.cc
+++ b/poppler/Form.cc
@@ -1975,6 +1975,18 @@ void 
FormFieldSignature::setCertificateInfo(std::unique_ptr
 certificate_info.swap(certInfo);
 }
 
+FormWidget *FormFieldSignature::getCreateWidget()
+{
+::FormWidget *fw = getWidget(0);
+if (!fw) {
+error(errSyntaxError, 0, "FormFieldSignature: was asked for widget and 
didn't had one, creating it");
+_createWidget(, ref);
+fw = getWidget(0);
+fw->createWidgetAnnotation();
+}
+return fw;
+}
+
 void FormFieldSignature::parseInfo()
 {
 if (!obj.isDict())
diff --git a/poppler/Form.h b/poppler/Form.h
index dcf89760..247fc141 100644
--- a/poppler/Form.h
+++ b/poppler/Form.h
@@ -617,6 +617,8 @@ public:
 
 void setCertificateInfo(std::unique_ptr &);
 
+FormWidget *getCreateWidget();
+
 private:
 void parseInfo();
 void hashSignedDataBlock(SignatureHandler *handler, Goffset block_len);
diff --git a/qt5/src/poppler-document.cc b/qt5/src/poppler-document.cc
index 0a2a6ce4..c7d38be2 100644
--- a/qt5/src/poppler-document.cc
+++ b/qt5/src/poppler-document.cc
@@ -825,7 +825,7 @@ QVector Document::signatures() const
 const std::vector<::FormFieldSignature *> pSignatures = 
m_doc->doc->getSignatureFields();
 
 for (::FormFieldSignature *pSignature : pSignatures) {
-::FormWidget *fw = pSignature->getWidget(0);
+::FormWidget *fw = pSignature->getCreateWidget();
 ::Page *p = 
m_doc->doc->getPage(fw->getWidgetAnnotation()->getPageNum());
 result.append(new FormFieldSignature(m_doc, p, 
static_cast(fw)));
 }
diff --git a/qt6/src/poppler-document.cc b/qt6/src/poppler-document.cc
index 1a13d46d..150cca0a 100644
--- a/qt6/src/poppler-document.cc
+++ b/qt6/src/poppler-document.cc
@@ -807,7 +807,7 @@ QVector Document::signatures() const
 const std::vector<::FormFieldSignature *> pSignatures = 
m_doc->doc->getSignatureFields();
 
 for (::FormFieldSignature *pSignature : pSignatures) {
-::FormWidget *fw = pSignature->getWidget(0);
+::FormWidget *fw = pSignature->getCreateWidget();
 ::Page *p = 
m_doc->doc->getPage(fw->getWidgetAnnotation()->getPageNum());
 result.append(new FormFieldSignature(m_doc, p, 
static_cast(fw)));
 }
___
poppler mailing list
poppler@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/poppler