From 3b5bcac9164ed432fdf31607166c57561e91d5bd Mon Sep 17 00:00:00 2001 From: ckuethe Date: Fri, 30 Mar 2007 04:09:42 +0000 Subject: [PATCH] Update to xpdf 3.0.2, from Stuart Henderson and Brad Smith Includes some security fixes ok pvalchev, todd --- textproc/xpdf/Makefile | 13 ++-- textproc/xpdf/distinfo | 9 ++- textproc/xpdf/patches/patch-xpdf_Catalog_cc | 10 +-- textproc/xpdf/patches/patch-xpdf_JPXStream_cc | 28 ------- textproc/xpdf/patches/patch-xpdf_Stream_cc | 75 ------------------- textproc/xpdf/patches/patch-xpdf_Stream_h | 20 ----- textproc/xpdf/patches/patch-xpdf_XPDFCore_cc | 20 +---- .../xpdf/patches/patch-xpdf_XPDFViewer_cc | 8 +- textproc/xpdf/patches/patch-xpdf_pdftops_cc | 8 +- 9 files changed, 29 insertions(+), 162 deletions(-) delete mode 100644 textproc/xpdf/patches/patch-xpdf_JPXStream_cc delete mode 100644 textproc/xpdf/patches/patch-xpdf_Stream_cc delete mode 100644 textproc/xpdf/patches/patch-xpdf_Stream_h diff --git a/textproc/xpdf/Makefile b/textproc/xpdf/Makefile index 93c09f2a163..f819c2e76ce 100644 --- a/textproc/xpdf/Makefile +++ b/textproc/xpdf/Makefile @@ -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" -DISTNAME= xpdf-3.01 -PKGNAME= ${DISTNAME}p1 +DISTNAME= xpdf-3.02 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/ @@ -21,7 +22,7 @@ PERMIT_PACKAGE_FTP= Yes PERMIT_DISTFILES_CDROM= Yes PERMIT_DISTFILES_FTP= Yes WANTLIB= ICE SM X11 Xext Xp Xpm Xt c freetype m pthread \ - stdc++ + stdc++ z USE_X11= Yes USE_GMAKE= Yes @@ -32,7 +33,7 @@ CONFIGURE_ARGS+= --enable-multithreaded \ --without-Sgm-library \ --without-libpaper-library 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 diff --git a/textproc/xpdf/distinfo b/textproc/xpdf/distinfo index 6bdbe9f2e96..11eb976d6c9 100644 --- a/textproc/xpdf/distinfo +++ b/textproc/xpdf/distinfo @@ -1,4 +1,5 @@ -MD5 (xpdf-3.01.tar.gz) = e004c69c7dddef165d768b1362b44268 -RMD160 (xpdf-3.01.tar.gz) = d734065ce12db8d0c37d9d0ac0ca7c287be59442 -SHA1 (xpdf-3.01.tar.gz) = 472cbf0f3df4e20a3ab7ada2e704b4e10d1d385b -SIZE (xpdf-3.01.tar.gz) = 599778 +MD5 (xpdf-3.02.tar.gz) = 599dc4cc65a07ee868cf92a667a913d2 +RMD160 (xpdf-3.02.tar.gz) = e900cb8670b8c430beaa45895fb474411cb1958d +SHA1 (xpdf-3.02.tar.gz) = f9940698840c8a8045677e8be68ab8580903e20a +SHA256 (xpdf-3.02.tar.gz) = b33a7d56f454c331ae50996f989e86c9166e57af97b74de28cddf3d51ac11f00 +SIZE (xpdf-3.02.tar.gz) = 674912 diff --git a/textproc/xpdf/patches/patch-xpdf_Catalog_cc b/textproc/xpdf/patches/patch-xpdf_Catalog_cc index 5f1cacf825a..72955002383 100644 --- a/textproc/xpdf/patches/patch-xpdf_Catalog_cc +++ b/textproc/xpdf/patches/patch-xpdf_Catalog_cc @@ -1,7 +1,7 @@ -$OpenBSD: patch-xpdf_Catalog_cc,v 1.2 2005/09/09 17:34:53 brad Exp $ ---- xpdf/Catalog.cc.orig Wed Aug 17 07:34:31 2005 -+++ xpdf/Catalog.cc Thu Aug 18 10:15:28 2005 -@@ -64,6 +64,15 @@ Catalog::Catalog(XRef *xrefA) { +$OpenBSD: patch-xpdf_Catalog_cc,v 1.3 2007/03/30 04:09:42 ckuethe Exp $ +--- xpdf/Catalog.cc.orig Tue Feb 27 22:05:52 2007 ++++ xpdf/Catalog.cc Fri Mar 30 00:31:19 2007 +@@ -65,6 +65,15 @@ Catalog::Catalog(XRef *xrefA) { } pagesSize = numPages0 = (int)obj.getNum(); 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 *)); pageRefs = (Ref *)gmallocn(pagesSize, sizeof(Ref)); 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) { pagesSize += 32; diff --git a/textproc/xpdf/patches/patch-xpdf_JPXStream_cc b/textproc/xpdf/patches/patch-xpdf_JPXStream_cc deleted file mode 100644 index 381880d3f98..00000000000 --- a/textproc/xpdf/patches/patch-xpdf_JPXStream_cc +++ /dev/null @@ -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)); diff --git a/textproc/xpdf/patches/patch-xpdf_Stream_cc b/textproc/xpdf/patches/patch-xpdf_Stream_cc deleted file mode 100644 index da3425af0dd..00000000000 --- a/textproc/xpdf/patches/patch-xpdf_Stream_cc +++ /dev/null @@ -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; - } diff --git a/textproc/xpdf/patches/patch-xpdf_Stream_h b/textproc/xpdf/patches/patch-xpdf_Stream_h deleted file mode 100644 index e8a9d048af8..00000000000 --- a/textproc/xpdf/patches/patch-xpdf_Stream_h +++ /dev/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; - }; - - //------------------------------------------------------------------------ diff --git a/textproc/xpdf/patches/patch-xpdf_XPDFCore_cc b/textproc/xpdf/patches/patch-xpdf_XPDFCore_cc index b5138677576..8bf736708cf 100644 --- a/textproc/xpdf/patches/patch-xpdf_XPDFCore_cc +++ b/textproc/xpdf/patches/patch-xpdf_XPDFCore_cc @@ -1,7 +1,7 @@ -$OpenBSD: patch-xpdf_XPDFCore_cc,v 1.3 2005/09/09 17:34:53 brad Exp $ ---- xpdf/XPDFCore.cc.orig Wed Aug 17 07:34:31 2005 -+++ xpdf/XPDFCore.cc Thu Aug 18 10:23:14 2005 -@@ -377,9 +377,6 @@ void XPDFCore::copySelection() { +$OpenBSD: patch-xpdf_XPDFCore_cc,v 1.4 2007/03/30 04:09:42 ckuethe Exp $ +--- xpdf/XPDFCore.cc.orig Tue Feb 27 22:05:52 2007 ++++ xpdf/XPDFCore.cc Fri Mar 30 00:31:19 2007 +@@ -407,9 +407,6 @@ void XPDFCore::copySelection() { int pg; 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)) { //~ for multithreading: need a mutex here 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 - } diff --git a/textproc/xpdf/patches/patch-xpdf_XPDFViewer_cc b/textproc/xpdf/patches/patch-xpdf_XPDFViewer_cc index 12d872f625d..dff1edf19b1 100644 --- a/textproc/xpdf/patches/patch-xpdf_XPDFViewer_cc +++ b/textproc/xpdf/patches/patch-xpdf_XPDFViewer_cc @@ -1,7 +1,7 @@ -$OpenBSD: patch-xpdf_XPDFViewer_cc,v 1.3 2005/09/09 17:34:53 brad Exp $ ---- xpdf/XPDFViewer.cc.orig Wed Aug 17 07:34:31 2005 -+++ xpdf/XPDFViewer.cc Thu Aug 18 10:08:25 2005 -@@ -2391,11 +2391,6 @@ void XPDFViewer::printPrintCbk(Widget wi +$OpenBSD: patch-xpdf_XPDFViewer_cc,v 1.4 2007/03/30 04:09:42 ckuethe Exp $ +--- xpdf/XPDFViewer.cc.orig Tue Feb 27 22:05:52 2007 ++++ xpdf/XPDFViewer.cc Fri Mar 30 00:31:19 2007 +@@ -3406,11 +3406,6 @@ void XPDFViewer::printPrintCbk(Widget widget, XtPointe PSOutputDev *psOut; doc = viewer->core->getDoc(); diff --git a/textproc/xpdf/patches/patch-xpdf_pdftops_cc b/textproc/xpdf/patches/patch-xpdf_pdftops_cc index 15af0ad95e7..a17c67bfb06 100644 --- a/textproc/xpdf/patches/patch-xpdf_pdftops_cc +++ b/textproc/xpdf/patches/patch-xpdf_pdftops_cc @@ -1,7 +1,7 @@ -$OpenBSD: patch-xpdf_pdftops_cc,v 1.3 2005/09/09 17:34:53 brad Exp $ ---- xpdf/pdftops.cc.orig Wed Aug 17 07:34:31 2005 -+++ xpdf/pdftops.cc Thu Aug 18 10:08:26 2005 -@@ -269,13 +269,6 @@ int main(int argc, char *argv[]) { +$OpenBSD: patch-xpdf_pdftops_cc,v 1.4 2007/03/30 04:09:42 ckuethe Exp $ +--- xpdf/pdftops.cc.orig Tue Feb 27 22:05:52 2007 ++++ xpdf/pdftops.cc Fri Mar 30 00:31:19 2007 +@@ -278,13 +278,6 @@ int main(int argc, char *argv[]) { goto err1; }