Update to xpdf 3.0.2, from Stuart Henderson and Brad Smith
Includes some security fixes ok pvalchev, todd
This commit is contained in:
parent
fce84944cf
commit
3b5bcac916
@ -1,12 +1,13 @@
|
|||||||
# $OpenBSD: Makefile,v 1.53 2006/08/03 23:55:11 espie Exp $
|
# $OpenBSD: Makefile,v 1.54 2007/03/30 04:09:42 ckuethe Exp $
|
||||||
|
|
||||||
COMMENT= "PDF viewer for X"
|
COMMENT= "PDF viewer for X"
|
||||||
|
|
||||||
DISTNAME= xpdf-3.01
|
DISTNAME= xpdf-3.02
|
||||||
PKGNAME= ${DISTNAME}p1
|
|
||||||
CATEGORIES= textproc x11
|
CATEGORIES= textproc x11
|
||||||
|
|
||||||
MASTER_SITES= ftp://ftp.foolabs.com/pub/xpdf/
|
MASTER_SITES= ftp://ftp.foolabs.com/pub/xpdf/ \
|
||||||
|
ftp://gd.tuwien.ac.at/publishing/xpdf/ \
|
||||||
|
ftp://tug.org/xpdf/
|
||||||
|
|
||||||
HOMEPAGE= http://www.foolabs.com/xpdf/
|
HOMEPAGE= http://www.foolabs.com/xpdf/
|
||||||
|
|
||||||
@ -21,7 +22,7 @@ PERMIT_PACKAGE_FTP= Yes
|
|||||||
PERMIT_DISTFILES_CDROM= Yes
|
PERMIT_DISTFILES_CDROM= Yes
|
||||||
PERMIT_DISTFILES_FTP= Yes
|
PERMIT_DISTFILES_FTP= Yes
|
||||||
WANTLIB= ICE SM X11 Xext Xp Xpm Xt c freetype m pthread \
|
WANTLIB= ICE SM X11 Xext Xp Xpm Xt c freetype m pthread \
|
||||||
stdc++
|
stdc++ z
|
||||||
|
|
||||||
USE_X11= Yes
|
USE_X11= Yes
|
||||||
USE_GMAKE= Yes
|
USE_GMAKE= Yes
|
||||||
@ -32,7 +33,7 @@ CONFIGURE_ARGS+= --enable-multithreaded \
|
|||||||
--without-Sgm-library \
|
--without-Sgm-library \
|
||||||
--without-libpaper-library
|
--without-libpaper-library
|
||||||
CONFIGURE_ENV= CPPFLAGS="-I${X11BASE}/include/freetype2 -I${X11BASE}/include -I${LOCALBASE}/include" \
|
CONFIGURE_ENV= CPPFLAGS="-I${X11BASE}/include/freetype2 -I${X11BASE}/include -I${LOCALBASE}/include" \
|
||||||
LDFLAGS="-L${X11BASE}/lib -L${LOCALBASE}/lib"
|
LDFLAGS="-L${X11BASE}/lib -L${LOCALBASE}/lib -lz"
|
||||||
|
|
||||||
NO_REGRESS= Yes
|
NO_REGRESS= Yes
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
MD5 (xpdf-3.01.tar.gz) = e004c69c7dddef165d768b1362b44268
|
MD5 (xpdf-3.02.tar.gz) = 599dc4cc65a07ee868cf92a667a913d2
|
||||||
RMD160 (xpdf-3.01.tar.gz) = d734065ce12db8d0c37d9d0ac0ca7c287be59442
|
RMD160 (xpdf-3.02.tar.gz) = e900cb8670b8c430beaa45895fb474411cb1958d
|
||||||
SHA1 (xpdf-3.01.tar.gz) = 472cbf0f3df4e20a3ab7ada2e704b4e10d1d385b
|
SHA1 (xpdf-3.02.tar.gz) = f9940698840c8a8045677e8be68ab8580903e20a
|
||||||
SIZE (xpdf-3.01.tar.gz) = 599778
|
SHA256 (xpdf-3.02.tar.gz) = b33a7d56f454c331ae50996f989e86c9166e57af97b74de28cddf3d51ac11f00
|
||||||
|
SIZE (xpdf-3.02.tar.gz) = 674912
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
$OpenBSD: patch-xpdf_Catalog_cc,v 1.2 2005/09/09 17:34:53 brad Exp $
|
$OpenBSD: patch-xpdf_Catalog_cc,v 1.3 2007/03/30 04:09:42 ckuethe Exp $
|
||||||
--- xpdf/Catalog.cc.orig Wed Aug 17 07:34:31 2005
|
--- xpdf/Catalog.cc.orig Tue Feb 27 22:05:52 2007
|
||||||
+++ xpdf/Catalog.cc Thu Aug 18 10:15:28 2005
|
+++ xpdf/Catalog.cc Fri Mar 30 00:31:19 2007
|
||||||
@@ -64,6 +64,15 @@ Catalog::Catalog(XRef *xrefA) {
|
@@ -65,6 +65,15 @@ Catalog::Catalog(XRef *xrefA) {
|
||||||
}
|
}
|
||||||
pagesSize = numPages0 = (int)obj.getNum();
|
pagesSize = numPages0 = (int)obj.getNum();
|
||||||
obj.free();
|
obj.free();
|
||||||
@ -17,7 +17,7 @@ $OpenBSD: patch-xpdf_Catalog_cc,v 1.2 2005/09/09 17:34:53 brad Exp $
|
|||||||
pages = (Page **)gmallocn(pagesSize, sizeof(Page *));
|
pages = (Page **)gmallocn(pagesSize, sizeof(Page *));
|
||||||
pageRefs = (Ref *)gmallocn(pagesSize, sizeof(Ref));
|
pageRefs = (Ref *)gmallocn(pagesSize, sizeof(Ref));
|
||||||
for (i = 0; i < pagesSize; ++i) {
|
for (i = 0; i < pagesSize; ++i) {
|
||||||
@@ -195,6 +204,11 @@ int Catalog::readPageTree(Dict *pagesDic
|
@@ -217,6 +226,11 @@ int Catalog::readPageTree(Dict *pagesDict, PageAttrs *
|
||||||
}
|
}
|
||||||
if (start >= pagesSize) {
|
if (start >= pagesSize) {
|
||||||
pagesSize += 32;
|
pagesSize += 32;
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
$OpenBSD: patch-xpdf_JPXStream_cc,v 1.1 2005/12/07 09:22:15 bernd Exp $
|
|
||||||
--- xpdf/JPXStream.cc.orig Wed Aug 17 07:34:31 2005
|
|
||||||
+++ xpdf/JPXStream.cc Tue Dec 6 21:13:44 2005
|
|
||||||
@@ -783,7 +783,7 @@ GBool JPXStream::readCodestream(Guint le
|
|
||||||
int segType;
|
|
||||||
GBool haveSIZ, haveCOD, haveQCD, haveSOT;
|
|
||||||
Guint precinctSize, style;
|
|
||||||
- Guint segLen, capabilities, comp, i, j, r;
|
|
||||||
+ Guint segLen, capabilities, nTiles, comp, i, j, r;
|
|
||||||
|
|
||||||
//----- main header
|
|
||||||
haveSIZ = haveCOD = haveQCD = haveSOT = gFalse;
|
|
||||||
@@ -818,8 +818,13 @@ GBool JPXStream::readCodestream(Guint le
|
|
||||||
/ img.xTileSize;
|
|
||||||
img.nYTiles = (img.ySize - img.yTileOffset + img.yTileSize - 1)
|
|
||||||
/ img.yTileSize;
|
|
||||||
- img.tiles = (JPXTile *)gmallocn(img.nXTiles * img.nYTiles,
|
|
||||||
- sizeof(JPXTile));
|
|
||||||
+ nTiles = img.nXTiles * img.nYTiles;
|
|
||||||
+ // check for overflow before allocating memory
|
|
||||||
+ if (nTiles == 0 || nTiles / img.nXTiles != img.nYTiles) {
|
|
||||||
+ error(getPos(), "Bad tile count in JPX SIZ marker segment");
|
|
||||||
+ return gFalse;
|
|
||||||
+ }
|
|
||||||
+ img.tiles = (JPXTile *)gmallocn(nTiles, sizeof(JPXTile));
|
|
||||||
for (i = 0; i < img.nXTiles * img.nYTiles; ++i) {
|
|
||||||
img.tiles[i].tileComps = (JPXTileComp *)gmallocn(img.nComps,
|
|
||||||
sizeof(JPXTileComp));
|
|
@ -1,75 +0,0 @@
|
|||||||
$OpenBSD: patch-xpdf_Stream_cc,v 1.1 2005/12/07 09:22:15 bernd Exp $
|
|
||||||
--- xpdf/Stream.cc.orig Wed Aug 17 07:34:31 2005
|
|
||||||
+++ xpdf/Stream.cc Tue Dec 6 21:13:44 2005
|
|
||||||
@@ -401,18 +401,33 @@ void ImageStream::skipLine() {
|
|
||||||
|
|
||||||
StreamPredictor::StreamPredictor(Stream *strA, int predictorA,
|
|
||||||
int widthA, int nCompsA, int nBitsA) {
|
|
||||||
+ int totalBits;
|
|
||||||
+
|
|
||||||
str = strA;
|
|
||||||
predictor = predictorA;
|
|
||||||
width = widthA;
|
|
||||||
nComps = nCompsA;
|
|
||||||
nBits = nBitsA;
|
|
||||||
+ predLine = NULL;
|
|
||||||
+ ok = gFalse;
|
|
||||||
|
|
||||||
nVals = width * nComps;
|
|
||||||
+ totalBits = nVals * nBits;
|
|
||||||
+ if (totalBits == 0 ||
|
|
||||||
+ (totalBits / nBits) / nComps != width ||
|
|
||||||
+ totalBits + 7 < 0) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
pixBytes = (nComps * nBits + 7) >> 3;
|
|
||||||
- rowBytes = ((nVals * nBits + 7) >> 3) + pixBytes;
|
|
||||||
+ rowBytes = ((totalBits + 7) >> 3) + pixBytes;
|
|
||||||
+ if (rowBytes < 0) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
predLine = (Guchar *)gmalloc(rowBytes);
|
|
||||||
memset(predLine, 0, rowBytes);
|
|
||||||
predIdx = rowBytes;
|
|
||||||
+
|
|
||||||
+ ok = gTrue;
|
|
||||||
}
|
|
||||||
|
|
||||||
StreamPredictor::~StreamPredictor() {
|
|
||||||
@@ -1004,6 +1019,10 @@ LZWStream::LZWStream(Stream *strA, int p
|
|
||||||
FilterStream(strA) {
|
|
||||||
if (predictor != 1) {
|
|
||||||
pred = new StreamPredictor(this, predictor, columns, colors, bits);
|
|
||||||
+ if (!pred->isOk()) {
|
|
||||||
+ delete pred;
|
|
||||||
+ pred = NULL;
|
|
||||||
+ }
|
|
||||||
} else {
|
|
||||||
pred = NULL;
|
|
||||||
}
|
|
||||||
@@ -2899,6 +2918,14 @@ GBool DCTStream::readBaselineSOF() {
|
|
||||||
height = read16();
|
|
||||||
width = read16();
|
|
||||||
numComps = str->getChar();
|
|
||||||
+ if (numComps <= 0 || numComps > 4) {
|
|
||||||
+ error(getPos(), "Bad number of components in DCT stream", prec);
|
|
||||||
+ return gFalse;
|
|
||||||
+ }
|
|
||||||
+ if (numComps <= 0 || numComps > 4) {
|
|
||||||
+ error(getPos(), "Bad number of components in DCT stream", prec);
|
|
||||||
+ return gFalse;
|
|
||||||
+ }
|
|
||||||
if (prec != 8) {
|
|
||||||
error(getPos(), "Bad DCT precision %d", prec);
|
|
||||||
return gFalse;
|
|
||||||
@@ -3827,6 +3854,10 @@ FlateStream::FlateStream(Stream *strA, i
|
|
||||||
FilterStream(strA) {
|
|
||||||
if (predictor != 1) {
|
|
||||||
pred = new StreamPredictor(this, predictor, columns, colors, bits);
|
|
||||||
+ if (!pred->isOk()) {
|
|
||||||
+ delete pred;
|
|
||||||
+ pred = NULL;
|
|
||||||
+ }
|
|
||||||
} else {
|
|
||||||
pred = NULL;
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
$OpenBSD: patch-xpdf_Stream_h,v 1.1 2005/12/07 09:22:15 bernd Exp $
|
|
||||||
--- xpdf/Stream.h.orig Wed Aug 17 07:34:31 2005
|
|
||||||
+++ xpdf/Stream.h Tue Dec 6 21:13:44 2005
|
|
||||||
@@ -232,6 +232,8 @@ public:
|
|
||||||
|
|
||||||
~StreamPredictor();
|
|
||||||
|
|
||||||
+ GBool isOk() { return ok; }
|
|
||||||
+
|
|
||||||
int lookChar();
|
|
||||||
int getChar();
|
|
||||||
|
|
||||||
@@ -249,6 +251,7 @@ private:
|
|
||||||
int rowBytes; // bytes per line
|
|
||||||
Guchar *predLine; // line buffer
|
|
||||||
int predIdx; // current index in predLine
|
|
||||||
+ GBool ok;
|
|
||||||
};
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
|
@ -1,7 +1,7 @@
|
|||||||
$OpenBSD: patch-xpdf_XPDFCore_cc,v 1.3 2005/09/09 17:34:53 brad Exp $
|
$OpenBSD: patch-xpdf_XPDFCore_cc,v 1.4 2007/03/30 04:09:42 ckuethe Exp $
|
||||||
--- xpdf/XPDFCore.cc.orig Wed Aug 17 07:34:31 2005
|
--- xpdf/XPDFCore.cc.orig Tue Feb 27 22:05:52 2007
|
||||||
+++ xpdf/XPDFCore.cc Thu Aug 18 10:23:14 2005
|
+++ xpdf/XPDFCore.cc Fri Mar 30 00:31:19 2007
|
||||||
@@ -377,9 +377,6 @@ void XPDFCore::copySelection() {
|
@@ -407,9 +407,6 @@ void XPDFCore::copySelection() {
|
||||||
int pg;
|
int pg;
|
||||||
double ulx, uly, lrx, lry;
|
double ulx, uly, lrx, lry;
|
||||||
|
|
||||||
@ -11,15 +11,3 @@ $OpenBSD: patch-xpdf_XPDFCore_cc,v 1.3 2005/09/09 17:34:53 brad Exp $
|
|||||||
if (getSelection(&pg, &ulx, &uly, &lrx, &lry)) {
|
if (getSelection(&pg, &ulx, &uly, &lrx, &lry)) {
|
||||||
//~ for multithreading: need a mutex here
|
//~ for multithreading: need a mutex here
|
||||||
if (currentSelection) {
|
if (currentSelection) {
|
||||||
@@ -1108,11 +1105,7 @@ void XPDFCore::inputCbk(Widget widget, X
|
|
||||||
#ifndef NO_TEXT_SELECT
|
|
||||||
if (core->selectULX != core->selectLRX &&
|
|
||||||
core->selectULY != core->selectLRY) {
|
|
||||||
- if (core->doc->okToCopy()) {
|
|
||||||
core->copySelection();
|
|
||||||
- } else {
|
|
||||||
- error(-1, "Copying of text from this document is not allowed.");
|
|
||||||
- }
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
$OpenBSD: patch-xpdf_XPDFViewer_cc,v 1.3 2005/09/09 17:34:53 brad Exp $
|
$OpenBSD: patch-xpdf_XPDFViewer_cc,v 1.4 2007/03/30 04:09:42 ckuethe Exp $
|
||||||
--- xpdf/XPDFViewer.cc.orig Wed Aug 17 07:34:31 2005
|
--- xpdf/XPDFViewer.cc.orig Tue Feb 27 22:05:52 2007
|
||||||
+++ xpdf/XPDFViewer.cc Thu Aug 18 10:08:25 2005
|
+++ xpdf/XPDFViewer.cc Fri Mar 30 00:31:19 2007
|
||||||
@@ -2391,11 +2391,6 @@ void XPDFViewer::printPrintCbk(Widget wi
|
@@ -3406,11 +3406,6 @@ void XPDFViewer::printPrintCbk(Widget widget, XtPointe
|
||||||
PSOutputDev *psOut;
|
PSOutputDev *psOut;
|
||||||
|
|
||||||
doc = viewer->core->getDoc();
|
doc = viewer->core->getDoc();
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
$OpenBSD: patch-xpdf_pdftops_cc,v 1.3 2005/09/09 17:34:53 brad Exp $
|
$OpenBSD: patch-xpdf_pdftops_cc,v 1.4 2007/03/30 04:09:42 ckuethe Exp $
|
||||||
--- xpdf/pdftops.cc.orig Wed Aug 17 07:34:31 2005
|
--- xpdf/pdftops.cc.orig Tue Feb 27 22:05:52 2007
|
||||||
+++ xpdf/pdftops.cc Thu Aug 18 10:08:26 2005
|
+++ xpdf/pdftops.cc Fri Mar 30 00:31:19 2007
|
||||||
@@ -269,13 +269,6 @@ int main(int argc, char *argv[]) {
|
@@ -278,13 +278,6 @@ int main(int argc, char *argv[]) {
|
||||||
goto err1;
|
goto err1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user