summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-09-06Bug 699717: Pop clip even in case of error.Sebastian Rasmussen
Not popping causes assert to be triggered in fz_draw_end_group().
2018-09-05Take colorspace name from ICC profile.Sebastian Rasmussen
2018-09-05Bug 699715: Support embedded ICC color profiles in GIF.Sebastian Rasmussen
2018-09-05When decoding GIF, move pixmap into struct so it can be changed.Sebastian Rasmussen
This makes it possible to change the colorspace when encountering ICC colorspaces.
2018-09-05Bug 699702: Handle ICC profiles split into multiple APP-markers.Sebastian Rasmussen
2018-09-05Add missing fz_var declarations.Tor Andersson
2018-09-05Add fz_new_stext_page_from_annot utility function.Tor Andersson
2018-09-05gl: Close password dialog when pressing Escape key.Tor Andersson
2018-09-05gl: Allow varying font sizes in text rendering.Tor Andersson
2018-09-05Use colorspace type enum instead of magic profile names.Tor Andersson
2018-09-05mutool run: Document addSimpleFont and addCJKFont functions.Tor Andersson
2018-09-05mutool run: Pass script path and arguments as scriptPath and scriptArgs.Tor Andersson
2018-09-04Fix 699177: Don't clamp line width to 1 after scaling by matrix expansion.Tor Andersson
2018-09-04Check for missing filename when saving gproof.Sebastian Rasmussen
2018-09-04Fix string handling when using gproof files.Sebastian Rasmussen
2018-09-04Add -dSAFER to gs calls in gproof.Michael Vrhel
Unlikely that this could be an issue, but lets add it for safety.
2018-09-04Fix bit rot in gproof support.Michael Vrhel
2018-08-31Visual Studio Solution tweaks.Robin Watts
Ensure that the generated libmupdf includes all library dependencies within it. This makes life easier for people linking MuPDF into their own projects as there is just one lib to include rather than a range of them that vary according to condfiguration. Fix 64bit Memento builds of libpkcs7. Remove double definitions of jpeg_get_small etc that are now shown up because of the libraries being merged into one.
2018-08-30When unrecoverable errors occur on a page, at least print them.Sebastian Rasmussen
Previously there was no visibility as to what the error was.
2018-08-30Bug 699695: Remember to end groups/softmasks even upon exception.Sebastian Rasmussen
fz_fill_path() may throw an exception halfway through pdf_show_path(), which in this case would not attempt to end any begun groups or softmasks. This led to e.g. leaks of pixmaps held by a group that was never ended. Moving the cleanup to the always block is not foolproof because the cleanup code itself may also throw exceptions, hence preventing the end of the fz_always block from being executed. This commit does put pdf_show_path() in the same situation as pdf_run_xobject() that has the same problem with its cleanup code. Thanks to oss-fuzz for reporting.
2018-08-30Bug 699694: Fix reference counting for JBIG2 globals.Sebastian Rasmussen
fz_open_jbig2d() is called at two locations in MuPDF. At one location a reference to the JBIG2 globals struct was taken before passing it to fz_open_jbig2d(). At the other location no such reference was taken, but rather ownership of the struct was implicitly transferred to fz_open_jbig2d(). This inconsistency led to a leak of the globals struct at the first location. Now, passing a JBIG2 globals struct to fz_open_jbig2d() never implictly takes ownership. Instead the JBIG2 stream will take a reference if it needs it and drops it in case of error. As usual it is the callers responsibility to drop the reference to the globals struct it owns.
2018-08-30Remove unreachable code.Sebastian Rasmussen
JBIG2 images are detected by build_compression_params() and then always passed to fz_open_image_decomp_stream() by build_filter(). Therefore there is no chance for build_filter() at a later stage to detect JBIG2 images, and so that check can be removed.
2018-08-30Remember type of exception upon error while running xobjects.Sebastian Rasmussen
2018-08-29Update to latest jbig2dec.Sebastian Rasmussen
2018-08-28Bug 699683: Skip painting too large images when using interpolation.Tor Andersson
When painting images using interpolation 16.16 fixpoint arithmetics is used. This limits the width/height of any image that can be painted to 32767. There was no size check, so large images caused overflow and subsequent out of bounds accesses which triggered MSAN. This c Thanks to oss-fuzz for reporting.
2018-08-28Bug 699675: Handle lack of default colorspaces when rendering type 3 font glyph.Sebastian Rasmussen
Previously this would result in trying to dereference a NULL pointer. Thanks to oss-fuzz for reporting.
2018-08-28Bug 699672: Handle out of bounds pointer to previous xref.Sebastian Rasmussen
Previously a value of 0 would cause the document not to be rendered.
2018-08-28Avoid use of fixed size buffers for the digest when document signingPaul Gardiner
The signer object now has an extra method that informs the caller of the maximum size the digest might be. This is used to allocate space for the digest within the file and to size some of the buffers used in the code. The openssl-based inplementation of the signer object has been updated to perform a test digest generation so as to find the size needed. We believe that the digest size is indendent of the hashed data.
2018-08-28Truncate name tokens that are too long.Tor Andersson
2018-08-23Honour the read-only form-field flag.Paul Gardiner
Avoid pdf_pass_event interacting with widgets that have the read-only field set.
2018-08-22Bug 699667: Remember to update gstate pointers when showing patterns.Sebastian Rasmussen
pdf_show_pattern() may resize the pdf run processors gstate array. In doing so any pointers to it saved by called will become stale. Similarly to pdf_begin_group() pdf_show_pattern() now returns the updated pointer to the top of the gstate stack. For the same reason pdf_show_pattern() can not be given a pointer to a gstate stack entry and continue using it after the gstate array has been resized. So, have pdf_show_pattern() take an index to the desired state instead.
2018-08-22Plug leak of buffer when button widgets are ignored.Sebastian Rasmussen
The leak was triggered by the PDF from 699576, but this commit does not fully fix that bug.
2018-08-22Remove the old 'nested depth' tracking.Tor Andersson
This was used to prevent infinite cycles in the Type3 font CharProcs, but the previous commits forbids all cycles in order to prevent memory leaks due to cyclic reference counts.
2018-08-22Bug 699666: Forbid cycles in Type3 font CharProcs.Tor Andersson
Thanks to oss-fuzz for reporting.
2018-08-22Bug 699653: Avoid dropping filter chain once too often in case of error.Sebastian Rasmussen
build_filter_chain_drop() promises to extend (according to the fs argument) the filter chain it is given, or in case of exception throw away the at that point potentially extended filter chain it was given from the beginning. Because build_filter_chain_drop() calls build_filter_drop() for every filter it adds it doesn't need to do any cleanup of the filter chain on its own, that's build_filter_drop()'s responsibility. Prior to this commit fz_catch() in build_filter_chain_drop() which would drop the filter chain one time too many (it was already dropped by build_filter_drop()), causing the callers to use a stale pointer. Now once the extra fz_drop_stream() has been removed the logic works as it ought to, even in the case of exceptions. Thanks to oss-fuzz for reporting.
2018-08-21Bug 699652: Fix postscript value stack underflow for index operator.Sebastian Rasmussen
Thanks to oss-fuzz for reporting.
2018-08-21Bug 699271: Fix eternal loop when skipping space before EOF.Sebastian Rasmussen
Thanks to Michael J Gruber for providing this oneliner.
2018-08-21Fix form recalculation issue.Tor Andersson
Commit f533104 accidentally removed the line that updated the value variable. Also set the field value to a name object for check boxes and radio buttons, as per the specification.
2018-08-21Handle form fields where the V is a name object.Tor Andersson
2018-08-21Improve parameter names.Tor Andersson
2018-08-21gl: Don't forget to terminate the string when clearing a text field.Tor Andersson
2018-08-21Fix 699625: Apply more vertical padding for multiline form fields.Tor Andersson
The exact value used by Adobe will need further investigation, but this gets pretty close.
2018-08-21Fix 699641: Follow Parent chain when looking up DA in annotations.Tor Andersson
The DA property is marked as inheritable for text fields. It is not marked inheritable for FreeText annotations, but I don't believe it will be a problem to treat it as such anyway.
2018-08-21Avoid unnecessary NULLing of doc->focusPaul Gardiner
doc->focus refers to a widget record within a specific page. We shouldn't NULL it when dropping a different page.
2018-08-21Choose the lastmost annotation rather than firstmost as mouse event target.Paul Gardiner
pdf_pass_event iterates through the annotations to find one with a bounding box that encompasses the event point. We were choosing the first found, whereas later annotations are considered above earlier ones so we should be choosing the last found.
2018-08-20Use "PDF Alert" as the default javascript alert title.Paul Gardiner
Without this, for alerts where no title is specified, "undefined" was displayed.
2018-08-20Fix inability to uncheck check boxes.Paul Gardiner
Just a case of fixing some incorrect logic.
2018-08-20Fix the Windows build.Paul Gardiner
Offer signing support only if we have libcrypto.
2018-08-14Fix leak of PDF object in mutool show.Sebastian Rasmussen
2018-08-14Bug 699631: Handle unsupported triangle mesh edge flags.Sebastian Rasmussen
There were two issues with the code parsing the triangle mesh's edge flags: * meshes were not require to start with an independent triangle * out of range edge flags caused vertices to be ignored A mesh where the edge flag of the first vertice is out of range, and the edge flag of the second vertex indicates continuation of a prior triangle would result in trying to create a triangle where the third coordinate would be uninitialized. This commit requires the edge flag of the first vertex to indicate a new independent triangle and if out of range edge flags are encountered they are treated as if they indicate a new triangle. Thanks to oss-fuzz for reporting.