1. 11 Jan, 2021 1 commit
  2. 07 Jan, 2021 2 commits
    • Uli Schlachter's avatar
      Slightly improve dealing with error snapshots · 66c99118
      Uli Schlachter authored
      An error in _cairo_surface_snapshot_copy_on_write() results in a
      snapshot in an error state and the snapshot's ->target could now point
      to a surface from _cairo_surface_create_in_error(). These surfaces e.g.
      have ->backend == NULL. Thus, anything looking at ->backend->type now
      explodes. This commit deals with two places which caused segfaults in
      this situation.
      
      There is no test case for this, because
      _cairo_surface_snapshot_copy_on_write() really is not supposed to fail.
      
      Found-while-investigating: cairo/cairo#448
      
      Signed-off-by: Uli Schlachter's avatarUli Schlachter <psychon@znc.in>
      66c99118
    • Uli Schlachter's avatar
      Add a bounds check to cairo_cff_font_read_fdselect() · b1e81ee9
      Uli Schlachter authored
      The code in cairo-cff-subset.c parses a binary format without seeming to
      bother much with verifying the data. The result is that poppler can be
      used to cause an out-of-bounds write in cairo_cff_font_read_fdselect()
      via a crafted font file. Fix this by adding the needed length check.
      
      The other code in the file also contains lots of similar things. Since I
      cannot really fix everything properly, I'll just fix the one instance
      that was found by a fuzzer.
      
      No testcase is added, because this depends on a broken font that is
      quite large. Adding something this big to the test suite does not seem
      sensible.
      
      Fixes: cairo/cairo#451
      
      Signed-off-by: Uli Schlachter's avatarUli Schlachter <psychon@znc.in>
      b1e81ee9
  3. 04 Jan, 2021 1 commit
  4. 27 Dec, 2020 1 commit
  5. 26 Dec, 2020 1 commit
  6. 25 Dec, 2020 1 commit
    • Uli Schlachter's avatar
      Add a bounds check to cairo_cff_parse_charstring() · 467e7822
      Uli Schlachter authored
      The code in cairo-cff-subset.c parses a binary font format without
      seeming to bother much verifying the data. The result is that poppler
      can be used to cause an out-of-bounds access in
      cairo_cff_parse_charstring() via a crafted font file. Fix this by adding
      the needed length check.
      
      The other code in the file also contains lots of similar things. Since I
      cannot really fix everything properly, I'll just fix the one instance
      that was found by a fuzzer.
      
      No testcase is added, because this depends on a broken font that is
      quite large. Adding something this big to the test suite does not seem
      sensible.
      
      Fixes: cairo/cairo#444
      
      Signed-off-by: Uli Schlachter's avatarUli Schlachter <psychon@znc.in>
      467e7822
  7. 15 Dec, 2020 2 commits
  8. 05 Dec, 2020 2 commits
  9. 03 Dec, 2020 2 commits
  10. 30 Nov, 2020 1 commit
  11. 21 Nov, 2020 1 commit
  12. 20 Nov, 2020 2 commits
    • Marek Kasik's avatar
      cff: Allow empty array of operands for certain operators · c86b90a0
      Marek Kasik authored
      Operators BlueValues, OtherBlues, FamilyBlues, FamilyOtherBlues,
      StemSnapH and StemSnapV have operands of type delta which can be
      a number or an array of delta-encoded numbers. This array can be
      empty according to freetype developers.
      This commit checks whether current operator is among those listed
      and permits empty operand in such case.
      c86b90a0
    • Sven Neumann's avatar
      Fix conversion from ISO 8601 to PDF date string · 6eb3c9d3
      Sven Neumann authored
      The code used to unintentionally drop the minutes from the timezone
      offset, see issue #392. This is now fixed.
      6eb3c9d3
  13. 07 Nov, 2020 1 commit
  14. 04 Nov, 2020 1 commit
    • Nirbheek Chauhan's avatar
      meson: Add dependencies to the declared libcairo dep · 618b13c4
      Nirbheek Chauhan authored
      That way when other projects consume our declared dep, they get
      transitive dependencies too based on what features cairo was built
      with. Without this, projects that build cairo as a subproject and also
      build, say, fontconfig as a subproject will fail to find cairo-ft.h
      (etc).
      618b13c4
  15. 21 Oct, 2020 1 commit
  16. 06 Oct, 2020 1 commit
  17. 29 Sep, 2020 1 commit
    • Tim-Philipp Müller's avatar
      Retire dummy cairo-version.h header to fix meson subproject build · 4ea2991a
      Tim-Philipp Müller authored
      It was originally added to make bisecting easier,
      but has outlived its usefuleness now.
      
      Going forward we'll have just a single cairo-version.h
      header file, the one with the real version numbers.
      
      This is needed to fix the case where cairo is being
      built as a Meson subproject, but also simplifies
      things in general.
      
      Fixes #421
      4ea2991a
  18. 05 Sep, 2020 1 commit
    • Uli Schlachter's avatar
      Fix/silence some warnings in 'make check' · 3b1bf9d6
      Uli Schlachter authored
      
      
      'make check' currently fails with the following in src/test-suite.log
      (how can one tell automake not to hide the error message in a file?!?):
      
      FAIL: check-doc-syntax.sh
      =========================
      
      Checking documentation for incorrect syntax
      ./cairo-cogl-surface.c: * cairo_cogl_pipeline_ts. On failure, both pointers will be set to
      ./cairo-cogl-surface.c:/* Mostly taken from cairo_vg_surface.c */
      Error: some function names in the docs are not followed by parentheses.
      Fix this by searching for the following regexp in the above files:
      	'^[^:]*:[/ ][*]\(\|[ 	].*\)\([^#']\|^\)\<\(cairo_[][<>/0-9a-z_]*\>[^][<>(]\)'
      FAIL check-doc-syntax.sh (exit status: 1)
      
      This commit silences that. The fix is likely not correct, but since
      these are normal comments and not actual doc comments, it does not
      matter much.
      Signed-off-by: Uli Schlachter's avatarUli Schlachter <psychon@znc.in>
      3b1bf9d6
  19. 02 Sep, 2020 1 commit
  20. 25 Aug, 2020 16 commits