summaryrefslogtreecommitdiff
path: root/print/poppler
diff options
context:
space:
mode:
authordrochner <drochner@pkgsrc.org>2010-11-02 15:45:12 +0000
committerdrochner <drochner@pkgsrc.org>2010-11-02 15:45:12 +0000
commite62d9250b034a586f9d8b2670e978eb72e94a586 (patch)
tree9f1bce0118d4533d938b91066376b094d08f25b0 /print/poppler
parent9e4a723829325adfbce1a9b20a5f942d13aee6a7 (diff)
downloadpkgsrc-e62d9250b034a586f9d8b2670e978eb72e94a586.tar.gz
update to 0.14.4
changes: -bugfixes (in particular for security issues which were patched in pkgsrc) -fixed memory leaks
Diffstat (limited to 'print/poppler')
-rw-r--r--print/poppler/Makefile3
-rw-r--r--print/poppler/Makefile.common4
-rw-r--r--print/poppler/distinfo14
-rw-r--r--print/poppler/patches/patch-ap152
-rw-r--r--print/poppler/patches/patch-ba82
-rw-r--r--print/poppler/patches/patch-bb26
-rw-r--r--print/poppler/patches/patch-bd48
-rw-r--r--print/poppler/patches/patch-be18
-rw-r--r--print/poppler/patches/patch-bf31
9 files changed, 7 insertions, 371 deletions
diff --git a/print/poppler/Makefile b/print/poppler/Makefile
index 6c62cf39865..3b612a5d855 100644
--- a/print/poppler/Makefile
+++ b/print/poppler/Makefile
@@ -1,10 +1,9 @@
-# $NetBSD: Makefile,v 1.50 2010/10/02 22:46:49 wiz Exp $
+# $NetBSD: Makefile,v 1.51 2010/11/02 15:45:12 drochner Exp $
#
.include "../../print/poppler/Makefile.common"
COMMENT= PDF rendering library
-PKGREVISION= 1
MAINTAINER= reed@reedmedia.net
USE_TOOLS+= gmake
diff --git a/print/poppler/Makefile.common b/print/poppler/Makefile.common
index e6d318db9ae..10323a1b296 100644
--- a/print/poppler/Makefile.common
+++ b/print/poppler/Makefile.common
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.common,v 1.40 2010/10/02 22:46:49 wiz Exp $
+# $NetBSD: Makefile.common,v 1.41 2010/11/02 15:45:12 drochner Exp $
#
# used by print/poppler/Makefile
# used by print/poppler-glib/Makefile
@@ -7,7 +7,7 @@
# used by print/poppler-qt4/Makefile
# used by print/poppler-utils/Makefile
-POPPLER_VERS= 0.14.2
+POPPLER_VERS= 0.14.4
DISTNAME= poppler-${POPPLER_VERS}
CATEGORIES= print
MASTER_SITES= http://poppler.freedesktop.org/
diff --git a/print/poppler/distinfo b/print/poppler/distinfo
index d695215510e..463a07e0536 100644
--- a/print/poppler/distinfo
+++ b/print/poppler/distinfo
@@ -1,20 +1,14 @@
-$NetBSD: distinfo,v 1.61 2010/10/01 21:32:34 spz Exp $
+$NetBSD: distinfo,v 1.62 2010/11/02 15:45:12 drochner Exp $
-SHA1 (poppler-0.14.2.tar.gz) = a93e85c322ce36da4e9b4e9e52c9fd12ea5f4d6f
-RMD160 (poppler-0.14.2.tar.gz) = bdbb901f85edd33ecd3ca1805a0f46c806bdb853
-Size (poppler-0.14.2.tar.gz) = 1791177 bytes
+SHA1 (poppler-0.14.4.tar.gz) = c51931d7229126c16da54b72bfe63a190c2b5160
+RMD160 (poppler-0.14.4.tar.gz) = 505ac4c3759a7d4b14c1d077f9249f317dc2d2af
+Size (poppler-0.14.4.tar.gz) = 1794096 bytes
SHA1 (patch-aa) = b8c24eb7358410069f7ce6ad62576bc288cd55bb
SHA1 (patch-ab) = 441308aec73c66a34c00ee1fad30a38748c89a7d
SHA1 (patch-ac) = c343775da48a1d86dea1451b74355d117e30f6c5
SHA1 (patch-ag) = 4b914e85bb08ce83305d20de9c0a3e74d3cabdd2
SHA1 (patch-ai) = a51dba3fb0e7131873ef82ae5e256fb1d17cee53
SHA1 (patch-ao) = cf7e0f086522147a91f59b1b26ca510d1971ac74
-SHA1 (patch-ap) = db1c9765135865251a7958c3a4b86718b3313fae
SHA1 (patch-aq) = 01e115ca868e0bbd398bade92485d83edbe98d66
-SHA1 (patch-ba) = 3a6bf7bd31c7e0238edd4d6505943c71d75221e4
-SHA1 (patch-bb) = c57c3b4bcf7a900e57bbf09d0fed28e2ef2dc737
SHA1 (patch-bc) = 456af841d297ce365878c9756d2c6327f9d7658e
-SHA1 (patch-bd) = 8fd34a0f8c916a2ddd28654a6a6e0fedc35d5359
-SHA1 (patch-be) = e4e9b351c902255f2437c37e1925def750401aa9
-SHA1 (patch-bf) = aedde989871fe452c5538dade6bfa9b4e343da6c
SHA1 (patch-bg) = b0353bf4bbee7a85f2a81e346119747897c7289f
diff --git a/print/poppler/patches/patch-ap b/print/poppler/patches/patch-ap
deleted file mode 100644
index d4ad1c89d32..00000000000
--- a/print/poppler/patches/patch-ap
+++ /dev/null
@@ -1,152 +0,0 @@
-$NetBSD: patch-ap,v 1.3 2010/10/01 21:32:34 spz Exp $
-
-https://bugs.freedesktop.org/show_bug.cgi?id=25189
-plus security fixes for http://secunia.com/advisories/41596/
-taken from http://cgit.freedesktop.org/poppler/
-
-- Make sure obj1 is a num before reading it
-- Fix crash in broken pdf (parser->getStream() is 0)
-- Properly initialize parser
-- Give a value to color.c[i]
-
---- poppler/Gfx.cc.orig 2010-08-11 19:20:32.000000000 +0000
-+++ poppler/Gfx.cc
-@@ -536,6 +536,7 @@ Gfx::Gfx(XRef *xrefA, OutputDev *outA, i
- drawText = gFalse;
- maskHaveCSPattern = gFalse;
- mcStack = NULL;
-+ parser = NULL;
-
- // start the resource stack
- res = new GfxResources(xref, resDict, NULL);
-@@ -590,6 +591,7 @@ Gfx::Gfx(XRef *xrefA, OutputDev *outA, D
- drawText = gFalse;
- maskHaveCSPattern = gFalse;
- mcStack = NULL;
-+ parser = NULL;
-
- // start the resource stack
- res = new GfxResources(xref, resDict, NULL);
-@@ -1531,6 +1533,8 @@ void Gfx::opSetFillColorN(Object args[],
- for (i = 0; i < numArgs - 1 && i < gfxColorMaxComps; ++i) {
- if (args[i].isNum()) {
- color.c[i] = dblToCol(args[i].getNum());
-+ } else {
-+ color.c[i] = 0; // TODO Investigate if this is what Adobe does
- }
- }
- state->setFillColor(&color);
-@@ -1550,6 +1554,8 @@ void Gfx::opSetFillColorN(Object args[],
- for (i = 0; i < numArgs && i < gfxColorMaxComps; ++i) {
- if (args[i].isNum()) {
- color.c[i] = dblToCol(args[i].getNum());
-+ } else {
-+ color.c[i] = 0; // TODO Investigate if this is what Adobe does
- }
- }
- state->setFillColor(&color);
-@@ -1574,6 +1580,8 @@ void Gfx::opSetStrokeColorN(Object args[
- for (i = 0; i < numArgs - 1 && i < gfxColorMaxComps; ++i) {
- if (args[i].isNum()) {
- color.c[i] = dblToCol(args[i].getNum());
-+ } else {
-+ color.c[i] = 0; // TODO Investigate if this is what Adobe does
- }
- }
- state->setStrokeColor(&color);
-@@ -1593,6 +1601,8 @@ void Gfx::opSetStrokeColorN(Object args[
- for (i = 0; i < numArgs && i < gfxColorMaxComps; ++i) {
- if (args[i].isNum()) {
- color.c[i] = dblToCol(args[i].getNum());
-+ } else {
-+ color.c[i] = 0; // TODO Investigate if this is what Adobe does
- }
- }
- state->setStrokeColor(&color);
-@@ -2421,7 +2431,7 @@ static void bubbleSort(double array[])
- void Gfx::doAxialShFill(GfxAxialShading *shading) {
- double xMin, yMin, xMax, yMax;
- double x0, y0, x1, y1;
-- double dx, dy, mul;
-+ double dx, dy, len2;
- GBool dxZero, dyZero;
- double bboxIntersections[4];
- double tMin, tMax, tx, ty;
-@@ -2443,16 +2453,18 @@ void Gfx::doAxialShFill(GfxAxialShading
- shading->getCoords(&x0, &y0, &x1, &y1);
- dx = x1 - x0;
- dy = y1 - y0;
-- dxZero = fabs(dx) < 0.01;
-- dyZero = fabs(dy) < 0.01;
-- if (dxZero && dyZero) {
-- tMin = tMax = 0;
-+ dxZero = (dx == 0.0);
-+ dyZero = (dy == 0.0);
-+ len2 = dx * dx + dy * dy;
-+ if (len2 == 0.0) {
-+ /* invalid? */
-+ tMin = 0;
-+ tMax = 1;
- } else {
-- mul = 1 / (dx * dx + dy * dy);
-- bboxIntersections[0] = ((xMin - x0) * dx + (yMin - y0) * dy) * mul;
-- bboxIntersections[1] = ((xMin - x0) * dx + (yMax - y0) * dy) * mul;
-- bboxIntersections[2] = ((xMax - x0) * dx + (yMin - y0) * dy) * mul;
-- bboxIntersections[3] = ((xMax - x0) * dx + (yMax - y0) * dy) * mul;
-+ bboxIntersections[0] = ((xMin - x0) * dx + (yMin - y0) * dy) / len2;
-+ bboxIntersections[1] = ((xMin - x0) * dx + (yMax - y0) * dy) / len2;
-+ bboxIntersections[2] = ((xMax - x0) * dx + (yMin - y0) * dy) / len2;
-+ bboxIntersections[3] = ((xMax - x0) * dx + (yMax - y0) * dy) / len2;
- bubbleSort(bboxIntersections);
- tMin = bboxIntersections[0];
- tMax = bboxIntersections[3];
-@@ -4225,8 +4237,14 @@ void Gfx::doForm(Object *str) {
- }
- for (i = 0; i < 4; ++i) {
- bboxObj.arrayGet(i, &obj1);
-- bbox[i] = obj1.getNum();
-- obj1.free();
-+ if (likely(obj1.isNum())) {
-+ bbox[i] = obj1.getNum();
-+ obj1.free();
-+ } else {
-+ obj1.free();
-+ error(getPos(), "Bad form bounding box value");
-+ return;
-+ }
- }
- bboxObj.free();
-
-@@ -4449,8 +4467,13 @@ Stream *Gfx::buildImageStream() {
- obj.free();
-
- // make stream
-- str = new EmbedStream(parser->getStream(), &dict, gFalse, 0);
-- str = str->addFilters(&dict);
-+ if (parser->getStream()) {
-+ str = new EmbedStream(parser->getStream(), &dict, gFalse, 0);
-+ str = str->addFilters(&dict);
-+ } else {
-+ str = NULL;
-+ dict.free();
-+ }
-
- return str;
- }
-@@ -4651,8 +4674,14 @@ void Gfx::drawAnnot(Object *str, AnnotBo
- }
- for (i = 0; i < 4; ++i) {
- bboxObj.arrayGet(i, &obj1);
-- bbox[i] = obj1.getNum();
-- obj1.free();
-+ if (likely(obj1.isNum())) {
-+ bbox[i] = obj1.getNum();
-+ obj1.free();
-+ } else {
-+ obj1.free();
-+ error(getPos(), "Bad form bounding box value");
-+ return;
-+ }
- }
- bboxObj.free();
-
diff --git a/print/poppler/patches/patch-ba b/print/poppler/patches/patch-ba
deleted file mode 100644
index a3ecb10b00a..00000000000
--- a/print/poppler/patches/patch-ba
+++ /dev/null
@@ -1,82 +0,0 @@
-$NetBSD: patch-ba,v 1.5 2010/10/01 21:32:34 spz Exp $
-
-security fixes for http://secunia.com/advisories/41596/
-taken from http://cgit.freedesktop.org/poppler
-
-- Fix memory leak if obj2 is not a dict
-- Avoid loops in Form::fieldLookup
-
---- poppler/Form.cc.orig 2010-06-08 20:06:31.000000000 +0000
-+++ poppler/Form.cc
-@@ -22,6 +22,7 @@
- #pragma implementation
- #endif
-
-+#include <set>
- #include <stddef.h>
- #include <string.h>
- #include "goo/gmem.h"
-@@ -715,13 +716,14 @@ FormField::FormField(XRef* xrefA, Object
- // Load children
- for(int i=0; i<length; i++) {
- Object obj2,obj3;
-- Object childRef;
- array->get(i, &obj2);
-- array->getNF(i, &childRef);
- if (!obj2.isDict ()) {
- error (-1, "Reference to an invalid or non existant object");
-+ obj2.free();
- continue;
- }
-+ Object childRef;
-+ array->getNF(i, &childRef);
- //field child
- if (dict->lookup ("FT", &obj3)->isName()) {
- // If I'm not a generic container field and my children
-@@ -1180,7 +1182,7 @@ Form::~Form() {
- }
-
- // Look up an inheritable field dictionary entry.
--Object *Form::fieldLookup(Dict *field, char *key, Object *obj) {
-+static Object *fieldLookup(Dict *field, char *key, Object *obj, std::set<int> *usedParents) {
- Dict *dict;
- Object parent;
-
-@@ -1189,8 +1191,23 @@ Object *Form::fieldLookup(Dict *field, c
- return obj;
- }
- obj->free();
-- if (dict->lookup("Parent", &parent)->isDict()) {
-- fieldLookup(parent.getDict(), key, obj);
-+ dict->lookupNF("Parent", &parent);
-+ if (parent.isRef()) {
-+ const Ref ref = parent.getRef();
-+ if (usedParents->find(ref.num) == usedParents->end()) {
-+ usedParents->insert(ref.num);
-+
-+ Object obj2;
-+ parent.fetch(dict->getXRef(), &obj2);
-+ if (obj2.isDict()) {
-+ fieldLookup(obj2.getDict(), key, obj, usedParents);
-+ } else {
-+ obj->initNull();
-+ }
-+ obj2.free();
-+ }
-+ } else if (parent.isDict()) {
-+ fieldLookup(parent.getDict(), key, obj, usedParents);
- } else {
- obj->initNull();
- }
-@@ -1198,6 +1215,11 @@ Object *Form::fieldLookup(Dict *field, c
- return obj;
- }
-
-+Object *Form::fieldLookup(Dict *field, char *key, Object *obj) {
-+ std::set<int> usedParents;
-+ return ::fieldLookup(field, key, obj, &usedParents);
-+}
-+
- FormField *Form::createFieldFromDict (Object* obj, XRef *xrefA, const Ref& pref)
- {
- Object obj2;
diff --git a/print/poppler/patches/patch-bb b/print/poppler/patches/patch-bb
deleted file mode 100644
index 6460c238ec7..00000000000
--- a/print/poppler/patches/patch-bb
+++ /dev/null
@@ -1,26 +0,0 @@
-$NetBSD: patch-bb,v 1.5 2010/10/01 21:32:34 spz Exp $
-
-security fixes for http://secunia.com/advisories/41596/
-taken from http://cgit.freedesktop.org/poppler
-
-- Avoid loops in Form::fieldLookup
-
---- poppler/Dict.h.orig 2010-10-01 05:53:53.000000000 +0000
-+++ poppler/Dict.h
-@@ -16,6 +16,7 @@
- // Copyright (C) 2005 Kristian Høgsberg <krh@redhat.com>
- // Copyright (C) 2006 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
- // Copyright (C) 2007-2008 Julien Rebetez <julienr@svn.gnome.org>
-+// Copyright (C) 2010 Albert Astals Cid <aacid@kde.org>
- //
- // To see a description of the changes please see the Changelog file that
- // came with your tarball or type make ChangeLog if you are building from git
-@@ -84,6 +85,8 @@ public:
- // parsed.
- void setXRef(XRef *xrefA) { xref = xrefA; }
-
-+ XRef *getXRef() { return xref; }
-+
- private:
-
- XRef *xref; // the xref table for this PDF file
diff --git a/print/poppler/patches/patch-bd b/print/poppler/patches/patch-bd
deleted file mode 100644
index 996a49ac9b2..00000000000
--- a/print/poppler/patches/patch-bd
+++ /dev/null
@@ -1,48 +0,0 @@
-$NetBSD: patch-bd,v 1.1 2010/10/01 21:32:34 spz Exp $
-
-security fixes for http://secunia.com/advisories/41596/
-taken from http://cgit.freedesktop.org/poppler
-
-- Fix crash in broken pdf (code < 0)
-
---- fofi/FoFiType1.cc.orig 2010-06-08 20:06:31.000000000 +0000
-+++ fofi/FoFiType1.cc
-@@ -13,7 +13,7 @@
- // All changes made under the Poppler project to this file are licensed
- // under GPL version 2 or later
- //
--// Copyright (C) 2005, 2008 Albert Astals Cid <aacid@kde.org>
-+// Copyright (C) 2005, 2008, 2010 Albert Astals Cid <aacid@kde.org>
- // Copyright (C) 2005 Kristian Høgsberg <krh@redhat.com>
- // Copyright (C) 2010 Jakub Wilk <ubanus@users.sf.net>
- //
-@@ -30,11 +30,20 @@
-
- #include <stdlib.h>
- #include <string.h>
-+
- #include "goo/gmem.h"
- #include "FoFiEncodings.h"
- #include "FoFiType1.h"
- #include "poppler/Error.h"
-
-+#if defined(__GNUC__) && (__GNUC__ > 2) && defined(__OPTIMIZE__)
-+# define likely(x) __builtin_expect((x), 1)
-+# define unlikely(x) __builtin_expect((x), 0)
-+#else
-+# define likely(x) (x)
-+# define unlikely(x) (x)
-+#endif
-+
- //------------------------------------------------------------------------
- // FoFiType1
- //------------------------------------------------------------------------
-@@ -243,7 +252,7 @@ void FoFiType1::parse() {
- code = code * 8 + (*p2 - '0');
- }
- }
-- if (code < 256) {
-+ if (likely(code < 256 && code >= 0)) {
- for (p = p2; *p == ' ' || *p == '\t'; ++p) ;
- if (*p == '/') {
- ++p;
diff --git a/print/poppler/patches/patch-be b/print/poppler/patches/patch-be
deleted file mode 100644
index e653a99d183..00000000000
--- a/print/poppler/patches/patch-be
+++ /dev/null
@@ -1,18 +0,0 @@
-$NetBSD: patch-be,v 1.1 2010/10/01 21:32:34 spz Exp $
-
-security fixes for http://secunia.com/advisories/41596/
-taken from http://cgit.freedesktop.org/poppler
-
-- Initialize properly charactersRead
-
---- poppler/Decrypt.cc.orig 2010-06-08 20:06:31.000000000 +0000
-+++ poppler/Decrypt.cc
-@@ -229,6 +229,8 @@ DecryptStream::DecryptStream(Stream *str
- if ((objKeyLength = keyLength + 5) > 16) {
- objKeyLength = 16;
- }
-+
-+ charactersRead = 0;
- }
-
- DecryptStream::~DecryptStream() {
diff --git a/print/poppler/patches/patch-bf b/print/poppler/patches/patch-bf
deleted file mode 100644
index 1fb6376d937..00000000000
--- a/print/poppler/patches/patch-bf
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD: patch-bf,v 1.1 2010/10/01 21:32:34 spz Exp $
-
-security fixes for http://secunia.com/advisories/41596/
-taken from http://cgit.freedesktop.org/poppler
-
-- Properly initialize stack
-- Fix crash when idx is out of range
-
---- poppler/Function.cc.orig 2010-07-24 12:01:53.000000000 +0000
-+++ poppler/Function.cc
-@@ -422,7 +422,11 @@ void SampledFunction::transform(double *
- for (k = 0, t = j; k < m; ++k, t >>= 1) {
- idx += idxMul[k] * (e[k][t & 1]);
- }
-- sBuf[j] = samples[idx];
-+ if (likely(idx >= 0 && idx < nSamples)) {
-+ sBuf[j] = samples[idx];
-+ } else {
-+ sBuf[j] = 0;
-+ }
- }
-
- // do m sets of interpolations
-@@ -1108,6 +1112,7 @@ PostScriptFunction::PostScriptFunction(O
- code = NULL;
- codeString = NULL;
- codeSize = 0;
-+ stack = NULL;
- ok = gFalse;
- cache = new PopplerCache(5);
-