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

Hiroto Kagotani hiroto.kagotani at gmail.com
Tue Nov 22 15:50:02 UTC 2011


>Number:         162755
>Category:       ports
>Synopsis:       [PATCH] graphics/evince: segfault on showing properties of some pdf files
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Nov 22 15:50:01 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Hiroto Kagotani
>Release:        FreeBSD 8.1-RELEASE-p5 i386
>Organization:
>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 ---

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list