...
 
Commits (23)
poppler (0.4.5-6) unstable; urgency=low
* Add versioned conflict on pdftohtml (finaly).
-- Ondřej Surý <ondrej@debian.org> Fri, 1 Dec 2006 17:15:06 +0100
poppler (0.4.5-5) unstable; urgency=low
* Acknowledge NMU (Closes: #375332)
* Add versioned conflict on pdftohtml (Closes: #393162)
-- Ondřej Surý <ondrej@debian.org> Tue, 24 Oct 2006 10:09:19 +0200
poppler (0.4.5-4.1) unstable; urgency=low
* Non-maintainer upload.
* Backport SplashFTFont.cc from 0.5.2; fixes FTBFS with Freetype 2.2.
(Closes: #373991)
-- Steinar H. Gunderson <sesse@debian.org> Sun, 25 Jun 2006 11:55:39 +0200
poppler (0.4.5-4) unstable; urgency=low
* Fix FTBFS with gcc 4.1 (Closes: #357479)
-- Ondřej Surý <ondrej@debian.org> Fri, 17 Mar 2006 17:13:33 +0100
poppler (0.4.5-3) unstable; urgency=low
* Disable cairo output for unstable, cairo rendering will stay
enabled in cairo version in experimental.
(Closes: #349371, #347652, #348511, #348869, #348980, #347423, #340379, #351070, #353444)
-- Ondřej Surý <ondrej@debian.org> Wed, 22 Feb 2006 09:36:36 +0100
poppler (0.4.5-2) unstable; urgency=high
* Add debian/patches/003-xpdf-3.01pl2.patch
- Security fixes from Derek Noonburg (follows CVE-2006-0301)
-- Ondřej Surý <ondrej@debian.org> Wed, 15 Feb 2006 11:16:40 +0100
poppler (0.4.5-1) unstable; urgency=high
* New upstream security release
- fixes CVE-2006-0301
-- Ondřej Surý <ondrej@debian.org> Sun, 12 Feb 2006 20:34:47 +0100
poppler (0.4.4-2) unstable; urgency=low
* Remove debian/patches/001_relibtoolize.patch
+ Relibtoolizing is needed because of 000_add-poppler-utils.patch
which modifies Makefile.am (Closes: 348714)
-- Ondřej Surý <ondrej@debian.org> Wed, 18 Jan 2006 22:07:55 +0100
poppler (0.4.4-1) unstable; urgency=high
* New upstream security release
- fixes CVE-2005-3624, CVE-2005-3625, CVE-2005-3627
* Remove debian/patches/003-CVE-2005-3624_5_7.patch:
- Merged upstream
* Add debian/patches/004-fix-CVE-2005-3192.patch:
* Remove debian/patches/004-fix-CVE-2005-3192.patch:
- Merged upstream
* Remove debian/patches/001-relibtoolize.patch
- Upstream uses recent libtool
-- Ondřej Surý <ondrej@debian.org> Wed, 11 Jan 2006 14:50:11 +0100
-- Ondřej Surý <ondrej@debian.org> Thu, 12 Jan 2006 20:40:27 +0100
poppler (0.4.3-3) unstable; urgency=low
......
......@@ -2,9 +2,8 @@ Source: poppler
Section: devel
Priority: optional
Maintainer: Ondřej Surý <ondrej@debian.org>
Uploaders: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>, Akira TAGOH <tagoh@debian.org>, Andreas Rottmann <rotty@debian.org>, Andrew Lau <netsnipe@users.sourceforge.net>, Carlos Perelló Marín <carlos@pemas.net>, Clément Stenac <zorglub@debian.org>, Ed Boraas <ed@debian.org>, Edd Dumbill <ejad@debian.org>, Emil Soleyman-Zomalan <emil@nishra.com>, Guilherme de S. Pastore <guilherme.pastore@terra.com.br>, Gustavo Noronha Silva <kov@debian.org>, J.H.M. Dassen (Ray) <jdassen@debian.org>, Joe Drew <drew@debian.org>, Johannes Rohr <jr.debian@rohr.org>, Jordi Mallach <jordi@debian.org>, Jose Carlos Garcia Sogo <jsogo@debian.org>, Josselin Mouette <joss@debian.org>, Loic Minier <lool@dooz.org>, Marc 'HE' Brockschmidt <he@debian.org>, Rob Bradford <rob@debianplanet.org>, Robert McQueen <robot101@debian.org>, Ross Burton <ross@debian.org>, Sebastien Bacher <seb128@debian.org>, Sjoerd Simons <sjoerd@debian.org>, Takuo KITAME <kitame@debian.org>
Build-Depends: cdbs, debhelper, gnome-pkg-tools, libcairo2-dev, libgtk2.0-dev, libqt3-mt-dev (>= 3:3.3.4-4)
Standards-Version: 3.6.1.1
Build-Depends: cdbs, debhelper, gnome-pkg-tools, libgtk2.0-dev, libqt3-mt-dev (>= 3:3.3.4-4)
Standards-Version: 3.7.2
Package: libpoppler0c2
Architecture: any
......@@ -73,8 +72,8 @@ Package: poppler-utils
Architecture: any
Section: utils
Depends: ${shlibs:Depends}
Conflicts: xpdf-utils, pdftohtml
Replaces: xpdf-utils, pdftohtml
Conflicts: xpdf-utils, pdftohtml (<= 0.36-13)
Replaces: xpdf-utils, pdftohtml (<= 0.36-13)
Provides: xpdf-utils, pdftohtml
Description: PDF utilitites (based on libpoppler)
This package contains pdftops (PDF to PostScript converter),
......
......@@ -73,9 +73,9 @@ Package: poppler-utils
Architecture: any
Section: utils
Depends: ${shlibs:Depends}
Conflicts: xpdf-utils, pdftohtml
Replaces: xpdf-utils, pdftohtml
Provides: xpdf-utils, pdftohtml
Conflicts: xpdf-utils, pdftohtml (<< 0.36-14)
Replaces: xpdf-utils
Provides: xpdf-utils
Description: PDF utilitites (based on libpoppler)
This package contains pdftops (PDF to PostScript converter),
pdfinfo (PDF document information extractor), pdfimages
......
......@@ -20,10 +20,11 @@ License:
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
along with this package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301, USA.
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.
This diff is collapsed.
This diff is collapsed.
diff -urN poppler-0.4.5~/goo/gmem.c poppler-0.4.5/goo/gmem.c
--- poppler-0.4.5~/goo/gmem.c 2005-05-01 23:54:55.000000000 +0200
+++ poppler-0.4.5/goo/gmem.c 2006-02-15 10:54:47.000000000 +0100
@@ -11,6 +11,7 @@
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
+#include <limits.h>
#include "gmem.h"
#ifdef DEBUG_MEM
@@ -62,7 +63,7 @@
int lst;
unsigned long *trl, *p;
- if (size == 0)
+ if (size <= 0)
return NULL;
size1 = gMemDataSize(size);
if (!(mem = (char *)malloc(size1 + gMemHdrSize + gMemTrlSize))) {
@@ -84,7 +85,7 @@
#else
void *p;
- if (size == 0)
+ if (size <= 0)
return NULL;
if (!(p = malloc(size))) {
fprintf(stderr, "Out of memory\n");
@@ -100,7 +101,7 @@
void *q;
size_t oldSize;
- if (size == 0) {
+ if (size <= 0) {
if (p)
gfree(p);
return NULL;
@@ -118,7 +119,7 @@
#else
void *q;
- if (size == 0) {
+ if (size <= 0) {
if (p)
free(p);
return NULL;
diff -urN poppler-0.4.5~/poppler/JBIG2Stream.cc poppler-0.4.5/poppler/JBIG2Stream.cc
--- poppler-0.4.5~/poppler/JBIG2Stream.cc 2006-01-10 19:53:54.000000000 +0100
+++ poppler-0.4.5/poppler/JBIG2Stream.cc 2006-02-15 11:06:06.000000000 +0100
@@ -683,7 +683,7 @@
h = hA;
line = (wA + 7) >> 3;
- if (h < 0 || line <= 0 || h >= (INT_MAX - 1) / line) {
+ if (w <= 0 || h <= 0 || line <= 0 || h >= (INT_MAX - 1) / line) {
error(-1, "invalid width/height");
data = NULL;
return;
@@ -701,7 +701,7 @@
h = bitmap->h;
line = bitmap->line;
- if (h < 0 || line <= 0 || h >= (INT_MAX - 1) / line) {
+ if (w <= 0 || h <= 0 || line <= 0 || h >= (INT_MAX - 1) / line) {
error(-1, "invalid width/height");
data = NULL;
return;
@@ -2268,6 +2268,14 @@
!readUWord(&stepX) || !readUWord(&stepY)) {
goto eofError;
}
+ if (w == 0 || h == 0 || w >= INT_MAX / h) {
+ error(getPos(), "Bad bitmap size in JBIG2 halftone segment");
+ return;
+ }
+ if (gridH == 0 || gridW >= INT_MAX / gridH) {
+ error(getPos(), "Bad grid size in JBIG2 halftone segment");
+ return;
+ }
// get pattern dictionary
if (nRefSegs != 1) {
diff -urN poppler-0.4.5~/poppler/Stream.cc poppler-0.4.5/poppler/Stream.cc
--- poppler-0.4.5~/poppler/Stream.cc 2006-01-10 19:53:54.000000000 +0100
+++ poppler-0.4.5/poppler/Stream.cc 2006-02-15 11:11:36.000000000 +0100
@@ -426,7 +426,8 @@
if (width <= 0 || nComps <= 0 || nBits <= 0 ||
nComps >= INT_MAX/nBits ||
- width >= INT_MAX/nComps/nBits) {
+ width >= INT_MAX/nComps/nBits ||
+ nVals * nBits + 7 < 0) {
return;
}
nVals = width * nComps;
@@ -3078,6 +3079,7 @@
numACHuffTables = index+1;
tbl = &acHuffTables[index];
} else {
+ index &= 0x0f;
if (index >= numDCHuffTables)
numDCHuffTables = index+1;
tbl = &dcHuffTables[index];
diff -urN poppler-0.4.5~/poppler/Stream.h poppler-0.4.5/poppler/Stream.h
--- poppler-0.4.5~/poppler/Stream.h 2005-12-12 21:41:14.000000000 +0100
+++ poppler-0.4.5/poppler/Stream.h 2006-02-15 11:07:28.000000000 +0100
@@ -532,7 +532,7 @@
short getWhiteCode();
short getBlackCode();
short lookBits(int n);
- void eatBits(int n) { inputBits -= n; }
+ void eatBits(int n) { if ((inputBits -= n) < 0) inputBits = 0; }
};
#ifndef ENABLE_LIBJPEG
diff -urN poppler-0.4.5~/splash/SplashXPathScanner.cc poppler-0.4.5/splash/SplashXPathScanner.cc
--- poppler-0.4.5~/splash/SplashXPathScanner.cc 2005-03-03 20:46:00.000000000 +0100
+++ poppler-0.4.5/splash/SplashXPathScanner.cc 2006-02-15 11:03:49.000000000 +0100
@@ -182,7 +182,7 @@
}
void SplashXPathScanner::computeIntersections(int y) {
- SplashCoord ySegMin, ySegMax, xx0, xx1;
+ SplashCoord xSegMin, xSegMax, ySegMin, ySegMax, xx0, xx1;
SplashXPathSeg *seg;
int i, j;
@@ -232,19 +232,27 @@
} else if (seg->flags & splashXPathVert) {
xx0 = xx1 = seg->x0;
} else {
- if (ySegMin <= y) {
- // intersection with top edge
- xx0 = seg->x0 + (y - seg->y0) * seg->dxdy;
+ if (seg->x0 < seg->x1) {
+ xSegMin = seg->x0;
+ xSegMax = seg->x1;
} else {
- // x coord of segment endpoint with min y coord
- xx0 = (seg->flags & splashXPathFlip) ? seg->x1 : seg->x0;
+ xSegMin = seg->x1;
+ xSegMax = seg->x0;
}
- if (ySegMax >= y + 1) {
- // intersection with bottom edge
- xx1 = seg->x0 + (y + 1 - seg->y0) * seg->dxdy;
- } else {
- // x coord of segment endpoint with max y coord
- xx1 = (seg->flags & splashXPathFlip) ? seg->x0 : seg->x1;
+ // intersection with top edge
+ xx0 = seg->x0 + ((SplashCoord)y - seg->y0) * seg->dxdy;
+ // intersection with bottom edge
+ xx1 = seg->x0 + ((SplashCoord)y + 1 - seg->y0) * seg->dxdy;
+ // the segment may not actually extend to the top and/or bottom edges
+ if (xx0 < xSegMin) {
+ xx0 = xSegMin;
+ } else if (xx0 > xSegMax) {
+ xx0 = xSegMax;
+ }
+ if (xx1 < xSegMin) {
+ xx1 = xSegMin;
+ } else if (xx1 > xSegMax) {
+ xx1 = xSegMax;
}
}
if (xx0 < xx1) {
--- ./utils/HtmlLinks.h~ 2006-03-17 15:12:45.000000000 +0000
+++ ./utils/HtmlLinks.h 2006-03-17 15:12:48.000000000 +0000
@@ -19,7 +19,7 @@
HtmlLink& operator=(const HtmlLink& x);
HtmlLink(double xmin,double ymin,double xmax,double ymax,GooString *_dest);
~HtmlLink();
- GBool HtmlLink::isEqualDest(const HtmlLink& x) const;
+ GBool isEqualDest(const HtmlLink& x) const;
GooString *getDest(){return new GooString(dest);}
double getX1() const {return Xmin;}
double getX2() const {return Xmax;}
--- poppler-0.4.5/splash/SplashFTFont.cc 2005-10-13 19:20:39.000000000 +0200
+++ poppler-0.5.2/splash/SplashFTFont.cc 2006-04-12 03:58:57.000000000 +0200
@@ -12,6 +12,15 @@
#pragma implementation
#endif
+#define MAKE_VERSION( a,b,c ) (((a) << 16) | ((b) << 8) | (c))
+
+#define FREETYPE_VERSION \
+ MAKE_VERSION(FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH)
+
+#include <ft2build.h>
+#include FT_OUTLINE_H
+#include FT_SIZES_H
+#include FT_GLYPH_H
#include "goo/gmem.h"
#include "SplashMath.h"
#include "SplashGlyphBitmap.h"
@@ -20,16 +29,21 @@
#include "SplashFTFontFile.h"
#include "SplashFTFont.h"
-#include FT_OUTLINE_H
-#include FT_INTERNAL_OBJECTS_H // needed for FT_New_Size decl
-
//------------------------------------------------------------------------
+#if ( FREETYPE_VERSION >= MAKE_VERSION(2,2,0) )
+static int glyphPathMoveTo(const FT_Vector *pt, void *path);
+static int glyphPathLineTo(const FT_Vector *pt, void *path);
+static int glyphPathConicTo(const FT_Vector *ctrl, const FT_Vector *pt, void *path);
+static int glyphPathCubicTo(const FT_Vector *ctrl1, const FT_Vector *ctrl2,
+ const FT_Vector *pt, void *path);
+#else
static int glyphPathMoveTo(FT_Vector *pt, void *path);
static int glyphPathLineTo(FT_Vector *pt, void *path);
static int glyphPathConicTo(FT_Vector *ctrl, FT_Vector *pt, void *path);
static int glyphPathCubicTo(FT_Vector *ctrl1, FT_Vector *ctrl2,
FT_Vector *pt, void *path);
+#endif
//------------------------------------------------------------------------
// SplashFTFont
@@ -39,7 +53,7 @@
SplashFont(fontFileA, matA, fontFileA->engine->aa)
{
FT_Face face;
- SplashCoord size, div;
+ double size, div;
int x, y;
face = fontFileA->face;
@@ -112,14 +126,21 @@
}
if (yMax == yMin) {
yMin = 0;
- yMax = (int)(1.2 * size);
+ yMax = (int)((SplashCoord)1.2 * size);
}
// compute the transform matrix
+#if USE_FIXEDPOINT
+ matrix.xx = (FT_Fixed)((mat[0] / size).getRaw());
+ matrix.yx = (FT_Fixed)((mat[1] / size).getRaw());
+ matrix.xy = (FT_Fixed)((mat[2] / size).getRaw());
+ matrix.yy = (FT_Fixed)((mat[3] / size).getRaw());
+#else
matrix.xx = (FT_Fixed)((mat[0] / size) * 65536);
matrix.yx = (FT_Fixed)((mat[1] / size) * 65536);
matrix.xy = (FT_Fixed)((mat[2] / size) * 65536);
matrix.yy = (FT_Fixed)((mat[3] / size) * 65536);
+#endif
}
SplashFTFont::~SplashFTFont() {
@@ -143,7 +164,7 @@
ff = (SplashFTFontFile *)fontFile;
ff->face->size = sizeObj;
- offset.x = (FT_Pos)(xFrac * splashFontFractionMul * 64);
+ offset.x = (FT_Pos)(int)((SplashCoord)xFrac * splashFontFractionMul * 64);
offset.y = 0;
FT_Set_Transform(ff->face, &matrix, &offset);
slot = ff->face->glyph;
@@ -197,6 +218,11 @@
return gTrue;
}
+struct SplashFTFontPath {
+ SplashPath *path;
+ GBool needClose;
+};
+
SplashPath *SplashFTFont::getGlyphPath(int c) {
static FT_Outline_Funcs outlineFuncs = {
&glyphPathMoveTo,
@@ -206,7 +232,7 @@
0, 0
};
SplashFTFontFile *ff;
- SplashPath *path;
+ SplashFTFontPath path;
FT_GlyphSlot slot;
FT_UInt gid;
FT_Glyph glyph;
@@ -226,26 +252,56 @@
if (FT_Get_Glyph(slot, &glyph)) {
return NULL;
}
- path = new SplashPath();
+ path.path = new SplashPath();
+ path.needClose = gFalse;
FT_Outline_Decompose(&((FT_OutlineGlyph)glyph)->outline,
- &outlineFuncs, path);
- return path;
+ &outlineFuncs, &path);
+ if (path.needClose) {
+ path.path->close();
+ }
+ FT_Done_Glyph(glyph);
+ return path.path;
}
-static int glyphPathMoveTo(FT_Vector *pt, void *path) {
- ((SplashPath *)path)->moveTo(pt->x / 64.0, -pt->y / 64.0);
+#if ( FREETYPE_VERSION >= MAKE_VERSION(2,2,0) )
+static int glyphPathMoveTo(const FT_Vector *pt, void *path)
+#else
+static int glyphPathMoveTo(FT_Vector *pt, void *path)
+#endif
+{
+ SplashFTFontPath *p = (SplashFTFontPath *)path;
+
+ if (p->needClose) {
+ p->path->close();
+ p->needClose = gFalse;
+ }
+ p->path->moveTo(pt->x / 64.0, -pt->y / 64.0);
return 0;
}
-static int glyphPathLineTo(FT_Vector *pt, void *path) {
- ((SplashPath *)path)->lineTo(pt->x / 64.0, -pt->y / 64.0);
+#if ( FREETYPE_VERSION >= MAKE_VERSION(2,2,0) )
+static int glyphPathLineTo(const FT_Vector *pt, void *path)
+#else
+static int glyphPathLineTo(FT_Vector *pt, void *path)
+#endif
+{
+ SplashFTFontPath *p = (SplashFTFontPath *)path;
+
+ p->path->lineTo(pt->x / 64.0, -pt->y / 64.0);
+ p->needClose = gTrue;
return 0;
}
-static int glyphPathConicTo(FT_Vector *ctrl, FT_Vector *pt, void *path) {
+#if ( FREETYPE_VERSION >= MAKE_VERSION(2,2,0) )
+static int glyphPathConicTo(const FT_Vector *ctrl, const FT_Vector *pt, void *path)
+#else
+static int glyphPathConicTo(FT_Vector *ctrl, FT_Vector *pt, void *path)
+#endif
+{
+ SplashFTFontPath *p = (SplashFTFontPath *)path;
SplashCoord x0, y0, x1, y1, x2, y2, x3, y3, xc, yc;
- if (!((SplashPath *)path)->getCurPt(&x0, &y0)) {
+ if (!p->path->getCurPt(&x0, &y0)) {
return 0;
}
xc = ctrl->x / 64.0;
@@ -269,20 +325,28 @@
// p1 = (1/3) * (p0 + 2pc)
// p2 = (1/3) * (2pc + p3)
- x1 = (1.0 / 3.0) * (x0 + 2 * xc);
- y1 = (1.0 / 3.0) * (y0 + 2 * yc);
- x2 = (1.0 / 3.0) * (2 * xc + x3);
- y2 = (1.0 / 3.0) * (2 * yc + y3);
+ x1 = (SplashCoord)(1.0 / 3.0) * (x0 + (SplashCoord)2 * xc);
+ y1 = (SplashCoord)(1.0 / 3.0) * (y0 + (SplashCoord)2 * yc);
+ x2 = (SplashCoord)(1.0 / 3.0) * ((SplashCoord)2 * xc + x3);
+ y2 = (SplashCoord)(1.0 / 3.0) * ((SplashCoord)2 * yc + y3);
- ((SplashPath *)path)->curveTo(x1, y1, x2, y2, x3, y3);
+ p->path->curveTo(x1, y1, x2, y2, x3, y3);
+ p->needClose = gTrue;
return 0;
}
-static int glyphPathCubicTo(FT_Vector *ctrl1, FT_Vector *ctrl2,
- FT_Vector *pt, void *path) {
- ((SplashPath *)path)->curveTo(ctrl1->x / 64.0, -ctrl1->y / 64.0,
- ctrl2->x / 64.0, -ctrl2->y / 64.0,
- pt->x / 64.0, -pt->y / 64.0);
+#if ( FREETYPE_VERSION >= MAKE_VERSION(2,2,0) )
+static int glyphPathCubicTo(const FT_Vector *ctrl1, const FT_Vector *ctrl2, const FT_Vector *pt, void *path)
+#else
+static int glyphPathCubicTo(FT_Vector *ctrl1, FT_Vector *ctrl2, FT_Vector *pt, void *path)
+#endif
+{
+ SplashFTFontPath *p = (SplashFTFontPath *)path;
+
+ p->path->curveTo(ctrl1->x / 64.0, -ctrl1->y / 64.0,
+ ctrl2->x / 64.0, -ctrl2->y / 64.0,
+ pt->x / 64.0, -pt->y / 64.0);
+ p->needClose = gTrue;
return 0;
}
......@@ -6,8 +6,6 @@ include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/rules/simple-patchsys.mk
include /usr/share/cdbs/1/class/autotools.mk
include /usr/share/gnome-pkg-tools/1/rules/uploaders.mk
# a trick to fix xpdfrc location without modifying autotools stuff
DEB_CONFIGURE_SYSCONFDIR = /etc/xpdf
......@@ -15,7 +13,7 @@ DEB_CONFIGURE_SYSCONFDIR = /etc/xpdf
DEB_CONFIGURE_EXTRA_FLAGS = \
--enable-libjpeg \
--enable-splash-output \
--enable-cairo-output \
--disable-cairo-output \
--enable-poppler-glib \
--enable-poppler-qt \
--enable-a4-paper \
......