Package: fontforge
Version: 0.0.20110222-3
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu precise ubuntu-patch

In Ubuntu, the attached patch was applied to prevent a crash when reading 
optimized png files.

Ubuntu routinely runs optipng on installed png files, and that revealed a bug 
in fontforge's built-in png reader code.  This probably isn't super important 
for Debian, as you don't run optipng, but it appears to be a real bug and would 
let us get in sync again if it was applied.

I've also forwarded this patch to the fontforge mailing list.

Thanks for considering the patch.


-- System Information:
Debian Release: wheezy/sid
  APT prefers oneiric-updates
  APT policy: (500, 'oneiric-updates'), (500, 'oneiric-security'), (500, 
'oneiric')
Architecture: i386 (i686)

Kernel: Linux 3.0.0-12-generic (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -Nru fontforge-0.0.20110222/debian/patches/902_fix_optipng_reads.diff fontforge-0.0.20110222/debian/patches/902_fix_optipng_reads.diff
--- fontforge-0.0.20110222/debian/patches/902_fix_optipng_reads.diff	1969-12-31 19:00:00.000000000 -0500
+++ fontforge-0.0.20110222/debian/patches/902_fix_optipng_reads.diff	2011-10-25 14:25:46.000000000 -0400
@@ -0,0 +1,21 @@
+Description: If trans_alpha is NULL (likely due to optimized png), don't crash
+Author: Michael Terry <michael.te...@canonical.com>
+Forwarded: yes
+Bug-Ubuntu: https://launchpad.net/bugs/805752
+
+Index: fontforge-0.0.20110222/gutils/gimagereadpng.c
+===================================================================
+--- fontforge-0.0.20110222.orig/gutils/gimagereadpng.c	2011-10-25 14:17:10.856004364 -0400
++++ fontforge-0.0.20110222/gutils/gimagereadpng.c	2011-10-25 14:17:14.640004404 -0400
+@@ -282,9 +282,9 @@
+ 		    (trans_color->green>>8),
+ 		    (trans_color->blue>>8));
+         else if ( base->image_type == it_mono )
+-	    base->trans = trans_alpha[0];
++	    base->trans = trans_alpha ? trans_alpha[0] : 0;
+ 	else
+-	    base->clut->trans_index = base->trans = trans_alpha[0];
++	    base->clut->trans_index = base->trans = trans_alpha ? trans_alpha[0] : 0;
+     }
+ 
+     row_pointers = galloc(_png_get_image_height(png_ptr,info_ptr)*sizeof(png_bytep));
diff -Nru fontforge-0.0.20110222/debian/patches/series fontforge-0.0.20110222/debian/patches/series
--- fontforge-0.0.20110222/debian/patches/series	2011-06-05 08:14:54.000000000 -0400
+++ fontforge-0.0.20110222/debian/patches/series	2011-10-25 14:16:21.000000000 -0400
@@ -5,3 +5,4 @@
 027_catch_ctrl-c_signal.diff
 900_debian_HelpDir_path.diff
 901_ld_as_needed.diff
+902_fix_optipng_reads.diff

Reply via email to