Pullup ticket #6270 - requested by leot graphics/cairo: fix crashes Revisions pulled up: - graphics/cairo/Makefile 1.146 - graphics/cairo/distinfo 1.89 - graphics/cairo/patches/patch-src_cairo-ft-font.c 1.1 --- Module Name: pkgsrc Committed By: leot Date: Thu Jul 9 14:38:55 UTC 2020 Modified Files: pkgsrc/graphics/cairo: Makefile distinfo Added Files: pkgsrc/graphics/cairo/patches: patch-src_cairo-ft-font.c Log Message: cairo: backport patches from upstream to use FT_Done_MM_Var instead of free Memory allocated via FT_Get_MM_Var should be freed via FT_Done_MM_Var since freetype 2.9. Backport patches from upstream to address missing parts not doing that. PKGREVISION++diff -r1.145 -r1.145.8.1 pkgsrc/graphics/cairo/Makefile
(bsiegert)
@@ -1,17 +1,19 @@ | @@ -1,17 +1,19 @@ | |||
1 | # $NetBSD: Makefile,v 1.145 2019/08/28 22:08:12 wiz Exp $ | 1 | # $NetBSD: Makefile,v 1.145.8.1 2020/07/11 09:07:03 bsiegert Exp $ | |
2 | 2 | |||
3 | .include "../../graphics/cairo/Makefile.common" | 3 | .include "../../graphics/cairo/Makefile.common" | |
4 | 4 | |||
5 | PKGREVISION= 1 | |||
6 | ||||
5 | TEST_TARGET= check | 7 | TEST_TARGET= check | |
6 | 8 | |||
7 | .include "options.mk" | 9 | .include "options.mk" | |
8 | 10 | |||
9 | .include "../../archivers/lzo/buildlink3.mk" | 11 | .include "../../archivers/lzo/buildlink3.mk" | |
10 | .include "../../devel/zlib/buildlink3.mk" | 12 | .include "../../devel/zlib/buildlink3.mk" | |
11 | .include "../../fonts/fontconfig/buildlink3.mk" | 13 | .include "../../fonts/fontconfig/buildlink3.mk" | |
12 | .include "../../graphics/freetype2/buildlink3.mk" | 14 | .include "../../graphics/freetype2/buildlink3.mk" | |
13 | .include "../../graphics/png/buildlink3.mk" | 15 | .include "../../graphics/png/buildlink3.mk" | |
14 | # include? | 16 | # include? | |
15 | #.include "../../print/libspectre/buildlink3.mk" | 17 | #.include "../../print/libspectre/buildlink3.mk" | |
16 | BUILDLINK_API_DEPENDS.pixman+= pixman>=0.30.0 | 18 | BUILDLINK_API_DEPENDS.pixman+= pixman>=0.30.0 | |
17 | .include "../../x11/pixman/buildlink3.mk" | 19 | .include "../../x11/pixman/buildlink3.mk" |
@@ -1,10 +1,11 @@ | @@ -1,10 +1,11 @@ | |||
1 | $NetBSD: distinfo,v 1.88 2018/11/14 17:14:52 kleink Exp $ | 1 | $NetBSD: distinfo,v 1.88.14.1 2020/07/11 09:07:03 bsiegert Exp $ | |
2 | 2 | |||
3 | SHA1 (cairo-1.16.0.tar.xz) = 00e81842ae5e81bb0343108884eb5205be0eac14 | 3 | SHA1 (cairo-1.16.0.tar.xz) = 00e81842ae5e81bb0343108884eb5205be0eac14 | |
4 | RMD160 (cairo-1.16.0.tar.xz) = cfd2ef6ec55b267e04600f6b1e36bb07f2566b35 | 4 | RMD160 (cairo-1.16.0.tar.xz) = cfd2ef6ec55b267e04600f6b1e36bb07f2566b35 | |
5 | SHA512 (cairo-1.16.0.tar.xz) = 9eb27c4cf01c0b8b56f2e15e651f6d4e52c99d0005875546405b64f1132aed12fbf84727273f493d84056a13105e065009d89e94a8bfaf2be2649e232b82377f | 5 | SHA512 (cairo-1.16.0.tar.xz) = 9eb27c4cf01c0b8b56f2e15e651f6d4e52c99d0005875546405b64f1132aed12fbf84727273f493d84056a13105e065009d89e94a8bfaf2be2649e232b82377f | |
6 | Size (cairo-1.16.0.tar.xz) = 41997432 bytes | 6 | Size (cairo-1.16.0.tar.xz) = 41997432 bytes | |
7 | SHA1 (patch-aa) = b01bc60f77a7122b0c0d0d9b25ad512bac7c190c | 7 | SHA1 (patch-aa) = b01bc60f77a7122b0c0d0d9b25ad512bac7c190c | |
8 | SHA1 (patch-ab) = 11f7e0e59bd5c51a8fdacb48dcf2f2fefdf3b768 | 8 | SHA1 (patch-ab) = 11f7e0e59bd5c51a8fdacb48dcf2f2fefdf3b768 | |
9 | SHA1 (patch-ac) = 1785bbef6bcab4781bf89e1b986a7eb96e5f2b64 | 9 | SHA1 (patch-ac) = 1785bbef6bcab4781bf89e1b986a7eb96e5f2b64 | |
10 | SHA1 (patch-ad) = a1068a37113b162ccfe14d7f1bd0baa9df7e5530 | 10 | SHA1 (patch-ad) = a1068a37113b162ccfe14d7f1bd0baa9df7e5530 | |
11 | SHA1 (patch-src_cairo-ft-font.c) = 97288d79380473869f1049c1d8955a2f6fa3d178 |
$NetBSD: patch-src_cairo-ft-font.c,v 1.1.2.2 2020/07/11 09:07:03 bsiegert Exp $
Use FT_Done_MM_Var instead of free when available.
Fixes possible crashes and memory leaks.
Backport from upstream commits 90e85c24, a68c1968.
--- src/cairo-ft-font.c.orig 2020-07-09 14:26:11.503421448 +0000
+++ src/cairo-ft-font.c
@@ -459,6 +459,11 @@ _cairo_ft_unscaled_font_init (cairo_ft_u
unscaled->variations = calloc (ft_mm_var->num_axis, sizeof (FT_Fixed));
if (unscaled->variations)
FT_Get_Var_Design_Coordinates (face, ft_mm_var->num_axis, unscaled->variations);
+#if HAVE_FT_DONE_MM_VAR
+ FT_Done_MM_Var (face->glyph->library, ft_mm_var);
+#else
+ free (ft_mm_var);
+#endif
}
}
#endif
@@ -2393,7 +2398,11 @@ skip:
done:
free (coords);
free (current_coords);
+#if HAVE_FT_DONE_MM_VAR
+ FT_Done_MM_Var (face->glyph->library, ft_mm_var);
+#else
free (ft_mm_var);
+#endif
}
}