summaryrefslogtreecommitdiff
path: root/vcl/source/filter/ipdf/pdfdocument.cxx
AgeCommit message (Collapse)AuthorFilesLines
2018-03-02forcepoint #16: fix heap-use-after-freeMiklos Vajna1-1/+3
PDFDocument::Tokenize() in the aKeyword == "obj" case allocates a PDFObjectElement, stores it as an owning pointer inside rElements, and also stores two non-owning references to it in m_aOffsetObjects and m_aIDObjects. So make sure those 2 other containers are also cleared then elements go away. LO_TRACE="valgrind" bin/run pdfverify <sample> doesn't report errors anymore after the fix. Change-Id: Ie103de3e24a1080257a79e53b994e8536a9597bc Reviewed-on: https://gerrit.libreoffice.org/50631 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
2018-01-23tdf#114460 vcl: handle nested parentheses in PDF roundtripMiklos Vajna1-0/+9
The roundtrip of the pdf image failed due to this. (cherry picked from commit f58a16d5987c8e8c16580c514ce0c7b0895b4105) Change-Id: I88a9657e242dd2659f9bf06233e5fcbfeb43ceb5 Reviewed-on: https://gerrit.libreoffice.org/48378 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2017-11-22drop duplicate methodCaolán McNamara1-15/+15
Change-Id: Idadd0a64e41cd02f5167b275081c3576a6224b12 Reviewed-on: https://gerrit.libreoffice.org/45075 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-10-26vcl: minor cleanups in pdfdocumentMiklos Vajna1-21/+6
Change-Id: Ib1284b819d4af2e8055698be4160bbb41acba851 Reviewed-on: https://gerrit.libreoffice.org/43866 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-08-04svl: move DecodeHexString from vclAshod Nakashian1-45/+1
Change-Id: I86da993050bde20f9ff0413ad5424673647a0e5c Reviewed-on: https://gerrit.libreoffice.org/40720 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
2017-07-31vcl PDF tokenizer: indentation fixesMiklos Vajna1-1/+1
Change-Id: Ic8c652085c3132c0245c2629b71b0e2555d167cb
2017-07-28loplugin:constparams handle constructorsNoel Grandin1-1/+1
had to change the structure of the plugin considerably, was too messy to structure it to do the calculations on a per-function basis Change-Id: I4edee7735f726101105c607368124a08dba21086 Reviewed-on: https://gerrit.libreoffice.org/40516 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-18vcl pdf tokenizer: indentation fixesMiklos Vajna1-3/+3
These files had a consistent style before, let's keep them that way. Change-Id: I32cf4ae61d0fac37df5e5412ae9cf3e2b3c92d17
2017-07-18loplugin:constparams in vclNoel Grandin1-3/+3
Change-Id: I36afe2107e07ffb9b73c0b76be600e3e999a0fd4 Reviewed-on: https://gerrit.libreoffice.org/40116 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-16vcl: use svl signing and remove moved codeAshod Nakashian1-8/+5
Change-Id: Id875a675d7ab649c9223ecca5de2da69ff4b8786 Reviewed-on: https://gerrit.libreoffice.org/39718 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
2017-07-03Fix typosAndrea Gelmini1-1/+1
Change-Id: Iaf63c488f895c446bb54119d8c9f15e0adcd1eff Reviewed-on: https://gerrit.libreoffice.org/39454 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2017-06-17loplugin:unusedfields in vcl part1Noel Grandin1-6/+0
Change-Id: I67d176003f39992cd0ff9271a7d6ce26d2cb6619 Reviewed-on: https://gerrit.libreoffice.org/38828 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-04-14vcl PDF import: don't assume larger offset -> newer trailerMiklos Vajna1-3/+34
Usually when the PDF file contains incremental updates the updates are appended at the end of the document. But this is not required, the various trailers can be in any order. Make sure that we look at the last trailer (logically last, not the one with the largest file offset) when looking for pages. Change-Id: Idcd85a7c6bbf08c9436dd73933d79cdb683f482c Reviewed-on: https://gerrit.libreoffice.org/36527 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-04-07tdf#107018 PDF export of PDF images: handle references in nested dictionariesMiklos Vajna1-16/+11
Also get rid of the GetKeyOffset() and GetKeyValueLength() calls when copying dictionaries: the reference already knows its offset and length, so no need to call them. This makes the dictionary and the array handling more similar. Change-Id: I65936acfaf857636a8d83da3a4cec69289eb89d8 Reviewed-on: https://gerrit.libreoffice.org/36282 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-04-07tdf#107013 PDF export of PDF images: handle page tree and content streamsMiklos Vajna1-15/+31
Handle when the page objects are not contained in a single list, but a tree of "pages" objects. Also handle when the page object has multiple content streams. Change-Id: I7c5b0949314768af5915d37830a45e843e629446 Reviewed-on: https://gerrit.libreoffice.org/36256 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-04-05tdf#106972 vcl PDF export, PDF images: handle indirect font referencesMiklos Vajna1-1/+23
There were a number of problems here: - the /Resources key of a page object may be an indirect object - the /Font key of a resource object may be an indirect object - the /Length key of an object may be an indirect object So in all these cases handle not only a direct dictionary / number but also when we have a reference-to-dictionary/number. Change-Id: Ie74371f0ba43a133a1299843ef20cbfc75fe26d7
2017-03-28tdf#106693 vcl PDF export, norefxobj: handle multiple refs in copied arraysMiklos Vajna1-7/+27
Also fix confusion about dictionaries in arrays and arrays in dictionaries. Change-Id: I0d71d5796b1eb4f89e3fd9a5b1f807d2a7340a35 Reviewed-on: https://gerrit.libreoffice.org/35806 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-03-28tdf#106693 vcl PDF export, norefxobj: copy nested arrays correctlyMiklos Vajna1-2/+6
When copying an array we're only interested in the start/end position of the outermost array, otherwise only part of the array is copied. Change-Id: I9f5cb5e3ed395142fd82db34e1153ddfdf9f0eb3 Reviewed-on: https://gerrit.libreoffice.org/35797 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-03-27tdf#106693 vcl PDF export, norefxobj: handle multiple refs in copied dictsMiklos Vajna1-4/+25
When copying font definitions the dictionary has multiple values where the type is a reference. Improve PDFWriterImpl::copyExternalResource(), so that multiple references are copied correctly as well. With this the bugdoc (from comment 5) text appears in the output. Change-Id: I2343e616d8b36e3cdcbd4e713bd3f7fa7bce6d3b Reviewed-on: https://gerrit.libreoffice.org/35760 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-03-27tdf#106693 vcl PDF export, norefxobj: copy array objectsMiklos Vajna1-4/+42
So far only the dictionary and the stream of the object was copied, see if it has an array, and take care of that as well. Also check if the array contains a reference and act accordingly. Change-Id: I7f3bb12ec0bbc6f6e1db4f43625c7768b862c895 Reviewed-on: https://gerrit.libreoffice.org/35744 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-03-24tdf#106693 vcl PDF export, norefxobj: update XObject refsMiklos Vajna1-1/+15
Start copying referenced objects recursively, and also take care of updating references to the object IDs as they appear in our output. With this, the 4th image referenced from the PDF image has a correctly updated reference in its dictionary's ColorSpace key. Change-Id: I8b49701c1f60bd0ef5a097b24ce59164554c44fa Reviewed-on: https://gerrit.libreoffice.org/35653 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-03-24tdf#106693 vcl PDF export, norefxobj: copy XObject referencesMiklos Vajna1-0/+5
With this the images inside the PDF image show up correctly. Change-Id: I430502fb6ae9de8111dda7e67db33642ff263317 Reviewed-on: https://gerrit.libreoffice.org/35621 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-03-22Use rtl::isAscii* instead of ctype.h is* (and fix passing plain char)Stephan Bergmann1-9/+13
Change-Id: I10c0433d314808cb1c51c3bde4f826bce7c8a97b
2017-03-22Missing check for rStream.IsEof()Stephan Bergmann1-0/+4
...after a324099538916eae7f7239d32fd98ec8018cbb72 "xmlsecurity PDF signing: only write incremental xref in an incremental update" inserted the 'if' before the 'while (!rStream.IsEof())' Change-Id: Ib527894031f356c3d6df40b70259469ef4c338de
2017-03-22vcl: move in PDF tokenizer from xmlsecurityMiklos Vajna1-0/+2899
The PDF code in xmlsecurity served two purposes: - a generic PDF tokenizer - signature verification The first purpose is useful to have in VCL, so the PDF export code can use it as well when it comes to PDF image handling. This commit just moves most of the PDF code to VCL, it does not touch the PDF export code yet. With this, also the somewhat odd xmlsecurity dependency of CppunitTest_vcl_pdfexport can be removed as well. Change-Id: I6fe8294ed5c4aa4d79f4b2ddef80a4d1c9d566cc Reviewed-on: https://gerrit.libreoffice.org/35513 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>