[PATCH] graphics/evince: segfault on showing properties of some pdf files

Hiroto Kagotani hiroto.kagotani at gmail.com
Tue Nov 22 15:57:51 UTC 2011


>Submitter-Id:	current-users
>Originator:	Hiroto Kagotani
>Organization:	
>Confidential:	no 
>Synopsis:	[PATCH] graphics/evince: segfault on showing properties of some pdf files
>Severity:	non-critical
>Priority:	low
>Category:	ports 
>Class:		change-request
>Release:	FreeBSD 8.1-RELEASE-p5 i386
>Environment:
System: FreeBSD myhost.mydomain 8.1-RELEASE-p5 FreeBSD 8.1-RELEASE-p5 #0: Tue Sep 27 16:18:26 UTC 2011
>Description:
poppler has changed its API for getting PDF properties since 0.15.1
after the release of evince-2.32.0.

>From ChangeLog of poppler:
> commit d4a6c17255821925906c17b79b88eebed9edfee1
> Author: Carlos Garcia Campos <carlosgc at gnome.org>
> Date:   Fri Sep 17 13:04:33 2010 +0200
> 
>     [glib] Add accessor for all PopplerDocument properties
> 
>     PopplerDocument:linearized is now a boolean value rather than string,
>     so this commit breaks the API again.

This change causes evince segfault when showing properties of
some PDF files.  To avoid this, evince must handle ``linearized''
property as boolean.

Added file(s):
- files/patch-backend__pdf__ev-poppler.cc

Port maintainer (gnome at FreeBSD.org) is cc'd.

Generated with FreeBSD Port Tools 0.99

>How-To-Repeat:
Download a PDF file from
http://www.opm.gov/forms/pdf_fill/of0306.pdf
and open it with evince.
Choose Properties from File menu.

>Fix:
This fix is borrowed from 
http://osdir.com/ml/general/2010-09/msg30460.html
Since poppler in FreeBSD is now 0.18.0, #ifdef's are not required.

This fix should be removed when evince is updated to 3.x.

--- evince-2.32.0_6.patch begins here ---
diff -ruN --exclude=CVS /usr/ports/graphics/evince.orig/files/patch-backend__pdf__ev-poppler.cc /usr/ports/graphics/evince/files/patch-backend__pdf__ev-poppler.cc
--- /usr/ports/graphics/evince.orig/files/patch-backend__pdf__ev-poppler.cc	1970-01-01 09:00:00.000000000 +0900
+++ /usr/ports/graphics/evince/files/patch-backend__pdf__ev-poppler.cc	2011-11-22 23:57:55.000000000 +0900
@@ -0,0 +1,28 @@
+--- ./backend/pdf/ev-poppler.cc.orig	2010-09-28 01:54:34.000000000 +0900
++++ ./backend/pdf/ev-poppler.cc	2011-11-22 20:11:28.000000000 +0900
+@@ -640,6 +640,7 @@
+ 	PopplerPermissions permissions;
+ 	EvPage *page;
+ 	char *metadata;
++	gboolean linearized;
+ 
+ 	info = g_new0 (EvDocumentInfo, 1);
+ 
+@@ -676,7 +677,7 @@
+ 		      "producer", &(info->producer),
+ 		      "creation-date", &(info->creation_date),
+ 		      "mod-date", &(info->modified_date),
+-		      "linearized", &(info->linearized),
++		      "linearized", &linearized,
+ 		      "metadata", &metadata,
+ 		      NULL);
+ 
+@@ -782,6 +783,8 @@
+ 		info->security = g_strdup (_("No"));
+ 	}
+ 
++	info->linearized = linearized ? g_strdup (_("Yes")) : g_strdup (_("No"));
++
+ 	return info;
+ }
+ 
--- evince-2.32.0_6.patch ends here ---



More information about the freebsd-gnome mailing list