diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2020-07-24 11:29:27 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2020-12-21 10:07:06 +0100 |
commit | 998d42ac58e5532e2a07cc10204d9804ff3411cb (patch) | |
tree | 0d35362e94d7e9480e784bb76353b9e1e7946755 /vcl | |
parent | 4243fd4db9babb6e6a51e34bb6166981345a0aea (diff) |
xmlsecurity: detect unsigned incremental update between signatures
(cherry picked from commit 7468d5df5ec79783eae84b62bdc5ecf12f0ca255)
Conflicts:
vcl/source/filter/ipdf/pdfdocument.cxx
xmlsecurity/inc/pdfio/pdfdocument.hxx
xmlsecurity/qa/unit/pdfsigning/pdfsigning.cxx
xmlsecurity/source/pdfio/pdfdocument.cxx
Change-Id: I269ed858852ee7d1275adf340c8cc1565fc30693
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99510
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/filter/ipdf/pdfdocument.cxx | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/vcl/source/filter/ipdf/pdfdocument.cxx b/vcl/source/filter/ipdf/pdfdocument.cxx index 48cb17b67fae..ecbf948f1292 100644 --- a/vcl/source/filter/ipdf/pdfdocument.cxx +++ b/vcl/source/filter/ipdf/pdfdocument.cxx @@ -151,6 +151,8 @@ bool PDFDocument::RemoveSignature(size_t nPosition) return m_aEditBuffer.good(); } +const std::vector<size_t>& PDFDocument::GetEOFs() const { return m_aEOFs; } + sal_uInt32 PDFDocument::GetNextSignature() { sal_uInt32 nRet = 0; @@ -1917,7 +1919,16 @@ bool PDFCommentElement::Read(SvStream& rStream) m_aComment = aBuf.makeStringAndClear(); if (m_aComment.startsWith("%%EOF")) - m_rDoc.PushBackEOF(rStream.Tell()); + { + sal_uInt64 nPos = rStream.Tell(); + if (ch == '\r') + { + // If the comment ends with a \r\n, count the \n as well to match Adobe Acrobat + // behavior. + nPos += 1; + } + m_rDoc.PushBackEOF(nPos); + } SAL_INFO("vcl.filter", "PDFCommentElement::Read: m_aComment is '" << m_aComment << "'"); return true; |