Long overdue update to the latest release. Security patches removed, since all of them appear to be merged upstream, APIWARN diffs kept. The atexit workaround introduced by jolan is not needed any more, destructors in dlopened->dlclosed modules work fine afaik (dumb testcase: https://pbot.rmdir.de/D1yWgkHZs5Hm4snEP80vkQ).
The port now explicitely requests gnu11 support. I did not change the feature set (no libjpeg, no opengl) to ease the update. People can enable stuff later if they need to. Testing quirks: - disabling jpeg means that the two first tests fail - shells/bash should be installed at *configure* time in order for tests to be picked up; maybe we should add a "test" FLAVOR so that regular builds aren't affected? All consumers except graphics/DevIL (fix included) built fine on amd64. make test also passes on arm (minus the jpeg tests). I'll try to put this in a full bulk before commit. Thoughts? ok? Index: graphics/DevIL/Makefile =================================================================== RCS file: /cvs/ports/graphics/DevIL/Makefile,v retrieving revision 1.23 diff -u -p -r1.23 Makefile --- graphics/DevIL/Makefile 26 Jul 2017 22:45:23 -0000 1.23 +++ graphics/DevIL/Makefile 12 Dec 2017 12:35:54 -0000 @@ -28,7 +28,7 @@ LIB_DEPENDS= converters/libiconv \ devel/sdl \ graphics/freeglut \ graphics/ilmbase \ - graphics/jasper \ + graphics/jasper>=2.0.14 \ graphics/libmng \ graphics/lcms \ graphics/openexr \ Index: graphics/DevIL/patches/patch-src-IL_src_il_jp2_c =================================================================== RCS file: graphics/DevIL/patches/patch-src-IL_src_il_jp2_c diff -N graphics/DevIL/patches/patch-src-IL_src_il_jp2_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ graphics/DevIL/patches/patch-src-IL_src_il_jp2_c 12 Dec 2017 12:54:10 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +Cope with libjasper>=1.900.25 + +Index: src-IL/src/il_jp2.c +--- src-IL/src/il_jp2.c.orig ++++ src-IL/src/il_jp2.c +@@ -459,7 +459,7 @@ static void jas_stream_initbuf(jas_stream_t *stream, i + /* The buffer must be large enough to accommodate maximum + putback. */ + assert(bufsize > JAS_STREAM_MAXPUTBACK); +- stream->bufbase_ = JAS_CAST(uchar *, buf); ++ stream->bufbase_ = JAS_CAST(jas_uchar *, buf); + stream->bufsize_ = bufsize - JAS_STREAM_MAXPUTBACK; + } + } else { Index: graphics/jasper/Makefile =================================================================== RCS file: /cvs/ports/graphics/jasper/Makefile,v retrieving revision 1.22 diff -u -p -r1.22 Makefile --- graphics/jasper/Makefile 6 Dec 2017 00:29:52 -0000 1.22 +++ graphics/jasper/Makefile 12 Dec 2017 18:44:51 -0000 @@ -2,23 +2,36 @@ COMMENT = reference implementation of JPEG-2000 -DISTNAME = jasper-1.900.1 -REVISION = 6 -SHARED_LIBS = jasper 2.1 +DISTNAME = jasper-2.0.14 +FIX_EXTRACT_PERMISSIONS=Yes + +SHARED_LIBS = jasper 3.0 CATEGORIES = graphics -MASTER_SITES = https://www.ece.uvic.ca/~frodo/jasper/software/ -EXTRACT_SUFX = .zip HOMEPAGE = https://www.ece.uvic.ca/~frodo/jasper/ # MIT PERMIT_PACKAGE_CDROM = Yes + WANTLIB = c m -CONFIGURE_STYLE = gnu -CONFIGURE_ARGS += --without-x \ - --disable-opengl -MODGNU_CONFIG_GUESS_DIRS =${WRKSRC}/acaux +MASTER_SITES = https://www.ece.uvic.ca/~frodo/jasper/software/ + +# -stdc=gnu11 +COMPILER = base-clang ports-gcc +COMPILER_LANGS = c + +MODULES = devel/cmake + +# XXX needed at configure time else tests are skipped +TEST_DEPENDS = shells/bash + +CONFIGURE_ARGS = -DJAS_ENABLE_AUTOMATIC_DEPENDENCIES=false \ + -DJAS_ENABLE_LIBJPEG=false \ + -DJAS_ENABLE_OPENGL=false + +post-extract: + sed -i '1s@^#!.*bash@#!${LOCALBASE}/bin/bash@' ${WRKSRC}/test/bin/* .include <bsd.port.mk> Index: graphics/jasper/distinfo =================================================================== RCS file: /cvs/ports/graphics/jasper/distinfo,v retrieving revision 1.5 diff -u -p -r1.5 distinfo --- graphics/jasper/distinfo 18 Jan 2015 03:14:10 -0000 1.5 +++ graphics/jasper/distinfo 6 Dec 2017 00:39:31 -0000 @@ -1,2 +1,2 @@ -SHA256 (jasper-1.900.1.zip) = a5BanCrKLidVRCEmZu78TrRNldClfkMFRXtAf+Y/lJQ= -SIZE (jasper-1.900.1.zip) = 1415752 +SHA256 (jasper-2.0.14.tar.gz) = Kh9h5Vr+i0zoEV4VCMXXyzFNVt/MLdMj+QwHL4jM9Xs= +SIZE (jasper-2.0.14.tar.gz) = 1677951 Index: graphics/jasper/patches/patch-CMakeLists_txt =================================================================== RCS file: graphics/jasper/patches/patch-CMakeLists_txt diff -N graphics/jasper/patches/patch-CMakeLists_txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ graphics/jasper/patches/patch-CMakeLists_txt 12 Dec 2017 18:08:35 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +Don't pick up optional deps at configure time. + +Index: CMakeLists.txt +--- CMakeLists.txt.orig ++++ CMakeLists.txt +@@ -199,8 +199,6 @@ endif() + # Perform plaform checks. + ################################################################################ + +-find_package(Doxygen) +-find_package(LATEX COMPONENTS PDFLATEX) + find_program(BASH_PROGRAM bash) + + # On some (or maybe all?) systems, LATEX_FOUND is not set by FindLATEX. Index: graphics/jasper/patches/patch-src_appl_jasper_c =================================================================== RCS file: /cvs/ports/graphics/jasper/patches/patch-src_appl_jasper_c,v retrieving revision 1.1 diff -u -p -r1.1 patch-src_appl_jasper_c --- graphics/jasper/patches/patch-src_appl_jasper_c 17 May 2008 09:32:16 -0000 1.1 +++ graphics/jasper/patches/patch-src_appl_jasper_c 9 Dec 2017 12:20:44 -0000 @@ -1,7 +1,8 @@ $OpenBSD: patch-src_appl_jasper_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/appl/jasper.c.orig Fri Jan 19 22:43:08 2007 -+++ src/appl/jasper.c Fri May 16 22:47:48 2008 -@@ -456,9 +456,9 @@ int addopt(char *optstr, int maxlen, char *s) +Index: src/appl/jasper.c +--- src/appl/jasper.c.orig ++++ src/appl/jasper.c +@@ -473,9 +473,9 @@ int addopt(char *optstr, int maxlen, char *s) return 1; } if (n > 0) { Index: graphics/jasper/patches/patch-src_libjasper_base_jas_cm_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_base_jas_cm_c diff -N graphics/jasper/patches/patch-src_libjasper_base_jas_cm_c --- graphics/jasper/patches/patch-src_libjasper_base_jas_cm_c 17 May 2008 09:32:16 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,47 +0,0 @@ -$OpenBSD: patch-src_libjasper_base_jas_cm_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/base/jas_cm.c.orig Fri Jan 19 22:43:05 2007 -+++ src/libjasper/base/jas_cm.c Fri May 16 21:37:56 2008 -@@ -704,8 +704,7 @@ static int jas_cmpxformseq_resize(jas_cmpxformseq_t *p - { - jas_cmpxform_t **p; - assert(n >= pxformseq->numpxforms); -- p = (!pxformseq->pxforms) ? jas_malloc(n * sizeof(jas_cmpxform_t *)) : -- jas_realloc(pxformseq->pxforms, n * sizeof(jas_cmpxform_t *)); -+ p = jas_realloc2(pxformseq->pxforms, n, sizeof(jas_cmpxform_t *)); - if (!p) { - return -1; - } -@@ -889,13 +888,13 @@ static int jas_cmshapmatlut_set(jas_cmshapmatlut_t *lu - jas_cmshapmatlut_cleanup(lut); - if (curv->numents == 0) { - lut->size = 2; -- if (!(lut->data = jas_malloc(lut->size * sizeof(jas_cmreal_t)))) -+ if (!(lut->data = jas_alloc2(lut->size, sizeof(jas_cmreal_t)))) - goto error; - lut->data[0] = 0.0; - lut->data[1] = 1.0; - } else if (curv->numents == 1) { - lut->size = 256; -- if (!(lut->data = jas_malloc(lut->size * sizeof(jas_cmreal_t)))) -+ if (!(lut->data = jas_alloc2(lut->size, sizeof(jas_cmreal_t)))) - goto error; - gamma = curv->ents[0] / 256.0; - for (i = 0; i < lut->size; ++i) { -@@ -903,7 +902,7 @@ static int jas_cmshapmatlut_set(jas_cmshapmatlut_t *lu - } - } else { - lut->size = curv->numents; -- if (!(lut->data = jas_malloc(lut->size * sizeof(jas_cmreal_t)))) -+ if (!(lut->data = jas_alloc2(lut->size, sizeof(jas_cmreal_t)))) - goto error; - for (i = 0; i < lut->size; ++i) { - lut->data[i] = curv->ents[i] / 65535.0; -@@ -953,7 +952,7 @@ static int jas_cmshapmatlut_invert(jas_cmshapmatlut_t - return -1; - } - } -- if (!(invlut->data = jas_malloc(n * sizeof(jas_cmreal_t)))) -+ if (!(invlut->data = jas_alloc2(n, sizeof(jas_cmreal_t)))) - return -1; - invlut->size = n; - for (i = 0; i < invlut->size; ++i) { Index: graphics/jasper/patches/patch-src_libjasper_base_jas_icc_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_base_jas_icc_c diff -N graphics/jasper/patches/patch-src_libjasper_base_jas_icc_c --- graphics/jasper/patches/patch-src_libjasper_base_jas_icc_c 9 Mar 2016 15:16:05 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,165 +0,0 @@ -$OpenBSD: patch-src_libjasper_base_jas_icc_c,v 1.3 2016/03/09 15:16:05 jasper Exp $ - -Security fix for CVE-2016-1577: Prevent double-free in jas_iccattrval_destroy() -from https://launchpad.net/bugs/1547865 - -Security fix for CVE-2016-2116: Prevent jas_stream_t memory leak in jas_iccprof_createfrombuf() - -Security fix for CVE-2014-8137: double-free -from slackware - ---- src/libjasper/base/jas_icc.c.orig Fri Jan 19 22:43:05 2007 -+++ src/libjasper/base/jas_icc.c Wed Mar 9 16:11:14 2016 -@@ -300,6 +300,7 @@ jas_iccprof_t *jas_iccprof_load(jas_stream_t *in) - if (jas_iccprof_setattr(prof, tagtabent->tag, attrval)) - goto error; - jas_iccattrval_destroy(attrval); -+ attrval = 0; - } else { - #if 0 - jas_eprintf("warning: skipping unknown tag type\n"); -@@ -373,7 +374,7 @@ int jas_iccprof_save(jas_iccprof_t *prof, jas_stream_t - jas_icctagtab_t *tagtab; - - tagtab = &prof->tagtab; -- if (!(tagtab->ents = jas_malloc(prof->attrtab->numattrs * -+ if (!(tagtab->ents = jas_alloc2(prof->attrtab->numattrs, - sizeof(jas_icctagtabent_t)))) - goto error; - tagtab->numents = prof->attrtab->numattrs; -@@ -522,7 +523,7 @@ static int jas_iccprof_gettagtab(jas_stream_t *in, jas - } - if (jas_iccgetuint32(in, &tagtab->numents)) - goto error; -- if (!(tagtab->ents = jas_malloc(tagtab->numents * -+ if (!(tagtab->ents = jas_alloc2(tagtab->numents, - sizeof(jas_icctagtabent_t)))) - goto error; - tagtabent = tagtab->ents; -@@ -743,8 +744,7 @@ static int jas_iccattrtab_resize(jas_iccattrtab_t *tab - { - jas_iccattr_t *newattrs; - assert(maxents >= tab->numattrs); -- newattrs = tab->attrs ? jas_realloc(tab->attrs, maxents * -- sizeof(jas_iccattr_t)) : jas_malloc(maxents * sizeof(jas_iccattr_t)); -+ newattrs = jas_realloc2(tab->attrs, maxents, sizeof(jas_iccattr_t)); - if (!newattrs) - return -1; - tab->attrs = newattrs; -@@ -999,7 +999,7 @@ static int jas_icccurv_input(jas_iccattrval_t *attrval - - if (jas_iccgetuint32(in, &curv->numents)) - goto error; -- if (!(curv->ents = jas_malloc(curv->numents * sizeof(jas_iccuint16_t)))) -+ if (!(curv->ents = jas_alloc2(curv->numents, sizeof(jas_iccuint16_t)))) - goto error; - for (i = 0; i < curv->numents; ++i) { - if (jas_iccgetuint16(in, &curv->ents[i])) -@@ -1011,7 +1011,6 @@ static int jas_icccurv_input(jas_iccattrval_t *attrval - return 0; - - error: -- jas_icccurv_destroy(attrval); - return -1; - } - -@@ -1100,7 +1099,7 @@ static int jas_icctxtdesc_input(jas_iccattrval_t *attr - if (jas_iccgetuint32(in, &txtdesc->uclangcode) || - jas_iccgetuint32(in, &txtdesc->uclen)) - goto error; -- if (!(txtdesc->ucdata = jas_malloc(txtdesc->uclen * 2))) -+ if (!(txtdesc->ucdata = jas_alloc2(txtdesc->uclen, 2))) - goto error; - if (jas_stream_read(in, txtdesc->ucdata, txtdesc->uclen * 2) != - JAS_CAST(int, txtdesc->uclen * 2)) -@@ -1129,7 +1128,6 @@ static int jas_icctxtdesc_input(jas_iccattrval_t *attr - #endif - return 0; - error: -- jas_icctxtdesc_destroy(attrval); - return -1; - } - -@@ -1208,8 +1206,6 @@ static int jas_icctxt_input(jas_iccattrval_t *attrval, - goto error; - return 0; - error: -- if (txt->string) -- jas_free(txt->string); - return -1; - } - -@@ -1292,17 +1288,17 @@ static int jas_icclut8_input(jas_iccattrval_t *attrval - jas_iccgetuint16(in, &lut8->numouttabents)) - goto error; - clutsize = jas_iccpowi(lut8->clutlen, lut8->numinchans) * lut8->numoutchans; -- if (!(lut8->clut = jas_malloc(clutsize * sizeof(jas_iccuint8_t))) || -- !(lut8->intabsbuf = jas_malloc(lut8->numinchans * -- lut8->numintabents * sizeof(jas_iccuint8_t))) || -- !(lut8->intabs = jas_malloc(lut8->numinchans * -+ if (!(lut8->clut = jas_alloc2(clutsize, sizeof(jas_iccuint8_t))) || -+ !(lut8->intabsbuf = jas_alloc3(lut8->numinchans, -+ lut8->numintabents, sizeof(jas_iccuint8_t))) || -+ !(lut8->intabs = jas_alloc2(lut8->numinchans, - sizeof(jas_iccuint8_t *)))) - goto error; - for (i = 0; i < lut8->numinchans; ++i) - lut8->intabs[i] = &lut8->intabsbuf[i * lut8->numintabents]; -- if (!(lut8->outtabsbuf = jas_malloc(lut8->numoutchans * -- lut8->numouttabents * sizeof(jas_iccuint8_t))) || -- !(lut8->outtabs = jas_malloc(lut8->numoutchans * -+ if (!(lut8->outtabsbuf = jas_alloc3(lut8->numoutchans, -+ lut8->numouttabents, sizeof(jas_iccuint8_t))) || -+ !(lut8->outtabs = jas_alloc2(lut8->numoutchans, - sizeof(jas_iccuint8_t *)))) - goto error; - for (i = 0; i < lut8->numoutchans; ++i) -@@ -1330,7 +1326,6 @@ static int jas_icclut8_input(jas_iccattrval_t *attrval - goto error; - return 0; - error: -- jas_icclut8_destroy(attrval); - return -1; - } - -@@ -1461,17 +1456,17 @@ static int jas_icclut16_input(jas_iccattrval_t *attrva - jas_iccgetuint16(in, &lut16->numouttabents)) - goto error; - clutsize = jas_iccpowi(lut16->clutlen, lut16->numinchans) * lut16->numoutchans; -- if (!(lut16->clut = jas_malloc(clutsize * sizeof(jas_iccuint16_t))) || -+ if (!(lut16->clut = jas_alloc2(clutsize, sizeof(jas_iccuint16_t))) || - !(lut16->intabsbuf = jas_malloc(lut16->numinchans * - lut16->numintabents * sizeof(jas_iccuint16_t))) || -- !(lut16->intabs = jas_malloc(lut16->numinchans * -+ !(lut16->intabs = jas_alloc2(lut16->numinchans, - sizeof(jas_iccuint16_t *)))) - goto error; - for (i = 0; i < lut16->numinchans; ++i) - lut16->intabs[i] = &lut16->intabsbuf[i * lut16->numintabents]; -- if (!(lut16->outtabsbuf = jas_malloc(lut16->numoutchans * -- lut16->numouttabents * sizeof(jas_iccuint16_t))) || -- !(lut16->outtabs = jas_malloc(lut16->numoutchans * -+ if (!(lut16->outtabsbuf = jas_alloc3(lut16->numoutchans, -+ lut16->numouttabents, sizeof(jas_iccuint16_t))) || -+ !(lut16->outtabs = jas_alloc2(lut16->numoutchans, - sizeof(jas_iccuint16_t *)))) - goto error; - for (i = 0; i < lut16->numoutchans; ++i) -@@ -1499,7 +1494,6 @@ static int jas_icclut16_input(jas_iccattrval_t *attrva - goto error; - return 0; - error: -- jas_icclut16_destroy(attrval); - return -1; - } - -@@ -1699,6 +1693,9 @@ jas_iccprof_t *jas_iccprof_createfrombuf(uchar *buf, i - jas_stream_close(in); - return prof; - error: -+ if (in) -+ jas_stream_close(in); -+ - return 0; - } - Index: graphics/jasper/patches/patch-src_libjasper_base_jas_image_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_base_jas_image_c diff -N graphics/jasper/patches/patch-src_libjasper_base_jas_image_c --- graphics/jasper/patches/patch-src_libjasper_base_jas_image_c 4 Feb 2016 10:08:07 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,48 +0,0 @@ -$OpenBSD: patch-src_libjasper_base_jas_image_c,v 1.2 2016/02/04 10:08:07 jasper Exp $ - -Security fix for CVE-2016-2089, patch (rows_ NULL check) from RH: -https://bugzilla.redhat.com/show_bug.cgi?id=1302636 - ---- src/libjasper/base/jas_image.c.orig Thu Feb 4 10:57:40 2016 -+++ src/libjasper/base/jas_image.c Thu Feb 4 10:57:15 2016 -@@ -142,7 +142,7 @@ jas_image_t *jas_image_create(int numcmpts, jas_image_ - image->inmem_ = true; - - /* Allocate memory for the per-component information. */ -- if (!(image->cmpts_ = jas_malloc(image->maxcmpts_ * -+ if (!(image->cmpts_ = jas_alloc2(image->maxcmpts_, - sizeof(jas_image_cmpt_t *)))) { - jas_image_destroy(image); - return 0; -@@ -426,6 +426,10 @@ int jas_image_readcmpt(jas_image_t *image, int cmptno, - return -1; - } - -+ if (!data->rows_) { -+ return -1; -+ } -+ - if (jas_matrix_numrows(data) != height || jas_matrix_numcols(data) != width) { - if (jas_matrix_resize(data, height, width)) { - return -1; -@@ -479,6 +483,10 @@ int jas_image_writecmpt(jas_image_t *image, int cmptno - return -1; - } - -+ if (!data->rows_) { -+ return -1; -+ } -+ - if (jas_matrix_numrows(data) != height || jas_matrix_numcols(data) != width) { - return -1; - } -@@ -774,8 +782,7 @@ static int jas_image_growcmpts(jas_image_t *image, int - jas_image_cmpt_t **newcmpts; - int cmptno; - -- newcmpts = (!image->cmpts_) ? jas_malloc(maxcmpts * sizeof(jas_image_cmpt_t *)) : -- jas_realloc(image->cmpts_, maxcmpts * sizeof(jas_image_cmpt_t *)); -+ newcmpts = jas_realloc2(image->cmpts_, maxcmpts, sizeof(jas_image_cmpt_t *)); - if (!newcmpts) { - return -1; - } Index: graphics/jasper/patches/patch-src_libjasper_base_jas_init_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_base_jas_init_c diff -N graphics/jasper/patches/patch-src_libjasper_base_jas_init_c --- graphics/jasper/patches/patch-src_libjasper_base_jas_init_c 16 Aug 2009 19:58:31 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,14 +0,0 @@ -$OpenBSD: patch-src_libjasper_base_jas_init_c,v 1.1 2009/08/16 19:58:31 jolan Exp $ ---- src/libjasper/base/jas_init.c.orig Fri Jan 19 15:43:05 2007 -+++ src/libjasper/base/jas_init.c Sun Aug 16 07:41:36 2009 -@@ -150,8 +150,8 @@ int jas_init() - /* We must not register the JasPer library exit handler until after - at least one memory allocation is performed. This is desirable - as it ensures that the JasPer exit handler is called before the -- debug memory allocator exit handler. */ -- atexit(jas_cleanup); -+ debug memory allocator exit handler. -+ atexit(jas_cleanup);*/ - - return 0; - } Index: graphics/jasper/patches/patch-src_libjasper_base_jas_malloc_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_base_jas_malloc_c diff -N graphics/jasper/patches/patch-src_libjasper_base_jas_malloc_c --- graphics/jasper/patches/patch-src_libjasper_base_jas_malloc_c 16 Mar 2015 19:49:33 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,75 +0,0 @@ -$OpenBSD: patch-src_libjasper_base_jas_malloc_c,v 1.2 2015/03/16 19:49:33 sthen Exp $ ---- src/libjasper/base/jas_malloc.c.orig Fri Jan 19 21:43:05 2007 -+++ src/libjasper/base/jas_malloc.c Mon Mar 16 19:46:41 2015 -@@ -72,10 +72,13 @@ - \******************************************************************************/ - - #include <stdio.h> -+#include <stdint.h> - #include <stdlib.h> - - /* We need the prototype for memset. */ - #include <string.h> -+#include <limits.h> -+#include <errno.h> - - #include "jasper/jas_malloc.h" - -@@ -113,18 +116,50 @@ void jas_free(void *ptr) - - void *jas_realloc(void *ptr, size_t size) - { -- return realloc(ptr, size); -+ return ptr ? realloc(ptr, size) : malloc(size); - } - --void *jas_calloc(size_t nmemb, size_t size) -+void *jas_realloc2(void *ptr, size_t nmemb, size_t size) - { -- void *ptr; -+ if (!ptr) -+ return jas_alloc2(nmemb, size); -+ if (nmemb && SIZE_MAX / nmemb < size) { -+ errno = ENOMEM; -+ return NULL; -+ } -+ return jas_realloc(ptr, nmemb * size); -+ -+} -+ -+void *jas_alloc2(size_t nmemb, size_t size) -+{ -+ if (nmemb && SIZE_MAX / nmemb < size) { -+ errno = ENOMEM; -+ return NULL; -+ } -+ -+ return jas_malloc(nmemb * size); -+} -+ -+void *jas_alloc3(size_t a, size_t b, size_t c) -+{ - size_t n; -- n = nmemb * size; -- if (!(ptr = jas_malloc(n * sizeof(char)))) { -- return 0; -+ -+ if (a && SIZE_MAX / a < b) { -+ errno = ENOMEM; -+ return NULL; - } -- memset(ptr, 0, n); -+ -+ return jas_alloc2(a*b, c); -+} -+ -+void *jas_calloc(size_t nmemb, size_t size) -+{ -+ void *ptr; -+ -+ ptr = jas_alloc2(nmemb, size); -+ if (ptr) -+ memset(ptr, 0, nmemb*size); - return ptr; - } - Index: graphics/jasper/patches/patch-src_libjasper_base_jas_seq_c =================================================================== RCS file: /cvs/ports/graphics/jasper/patches/patch-src_libjasper_base_jas_seq_c,v retrieving revision 1.2 diff -u -p -r1.2 patch-src_libjasper_base_jas_seq_c --- graphics/jasper/patches/patch-src_libjasper_base_jas_seq_c 4 Feb 2016 10:08:07 -0000 1.2 +++ graphics/jasper/patches/patch-src_libjasper_base_jas_seq_c 9 Dec 2017 12:31:25 -0000 @@ -1,93 +1,9 @@ $OpenBSD: patch-src_libjasper_base_jas_seq_c,v 1.2 2016/02/04 10:08:07 jasper Exp $ -Security fix for CVE-2016-2089, patch (rows_ NULL check) from RH: -https://bugzilla.redhat.com/show_bug.cgi?id=1302636 - ---- src/libjasper/base/jas_seq.c.orig Thu Feb 4 10:57:40 2016 -+++ src/libjasper/base/jas_seq.c Thu Feb 4 10:57:15 2016 -@@ -114,7 +114,7 @@ jas_matrix_t *jas_matrix_create(int numrows, int numco - matrix->datasize_ = numrows * numcols; - - if (matrix->maxrows_ > 0) { -- if (!(matrix->rows_ = jas_malloc(matrix->maxrows_ * -+ if (!(matrix->rows_ = jas_alloc2(matrix->maxrows_, - sizeof(jas_seqent_t *)))) { - jas_matrix_destroy(matrix); - return 0; -@@ -122,7 +122,7 @@ jas_matrix_t *jas_matrix_create(int numrows, int numco - } - - if (matrix->datasize_ > 0) { -- if (!(matrix->data_ = jas_malloc(matrix->datasize_ * -+ if (!(matrix->data_ = jas_alloc2(matrix->datasize_, - sizeof(jas_seqent_t)))) { - jas_matrix_destroy(matrix); - return 0; -@@ -220,7 +220,7 @@ void jas_matrix_bindsub(jas_matrix_t *mat0, jas_matrix - mat0->numrows_ = r1 - r0 + 1; - mat0->numcols_ = c1 - c0 + 1; - mat0->maxrows_ = mat0->numrows_; -- mat0->rows_ = jas_malloc(mat0->maxrows_ * sizeof(jas_seqent_t *)); -+ mat0->rows_ = jas_alloc2(mat0->maxrows_, sizeof(jas_seqent_t *)); - for (i = 0; i < mat0->numrows_; ++i) { - mat0->rows_[i] = mat1->rows_[r0 + i] + c0; - } -@@ -262,6 +262,10 @@ void jas_matrix_divpow2(jas_matrix_t *matrix, int n) - int rowstep; - jas_seqent_t *data; - -+ if (!matrix->rows_) { -+ return; -+ } -+ - rowstep = jas_matrix_rowstep(matrix); - for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i, - rowstart += rowstep) { -@@ -282,6 +286,10 @@ void jas_matrix_clip(jas_matrix_t *matrix, jas_seqent_ - jas_seqent_t *data; - int rowstep; - -+ if (!matrix->rows_) { -+ return; -+ } -+ - rowstep = jas_matrix_rowstep(matrix); - for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i, - rowstart += rowstep) { -@@ -306,6 +314,10 @@ void jas_matrix_asr(jas_matrix_t *matrix, int n) - int rowstep; - jas_seqent_t *data; - -+ if (!matrix->rows_) { -+ return; -+ } -+ - assert(n >= 0); - rowstep = jas_matrix_rowstep(matrix); - for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i, -@@ -325,6 +337,10 @@ void jas_matrix_asl(jas_matrix_t *matrix, int n) - int rowstep; - jas_seqent_t *data; - -+ if (!matrix->rows_) { -+ return; -+ } -+ - rowstep = jas_matrix_rowstep(matrix); - for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i, - rowstart += rowstep) { -@@ -367,6 +383,10 @@ void jas_matrix_setall(jas_matrix_t *matrix, jas_seqen - int rowstep; - jas_seqent_t *data; - -+ if (!matrix->rows_) { -+ return; -+ } -+ - rowstep = jas_matrix_rowstep(matrix); - for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i, - rowstart += rowstep) { -@@ -432,7 +452,8 @@ int jas_seq2d_output(jas_matrix_t *matrix, FILE *out) +Index: src/libjasper/base/jas_seq.c +--- src/libjasper/base/jas_seq.c.orig ++++ src/libjasper/base/jas_seq.c +@@ -492,7 +492,8 @@ int jas_seq2d_output(jas_matrix_t *matrix, FILE *out) for (i = 0; i < jas_matrix_numrows(matrix); ++i) { for (j = 0; j < jas_matrix_numcols(matrix); ++j) { x = jas_matrix_get(matrix, i, j); @@ -95,9 +11,9 @@ https://bugzilla.redhat.com/show_bug.cgi + snprintf(sbuf, sizeof sbuf, + "%s%4ld", (strlen(buf) > 0) ? " " : "", JAS_CAST(long, x)); - n = strlen(buf); - if (n + strlen(sbuf) > MAXLINELEN) { -@@ -440,7 +461,7 @@ int jas_seq2d_output(jas_matrix_t *matrix, FILE *out) + n = JAS_CAST(int, strlen(buf)); + if (n + JAS_CAST(int, strlen(sbuf)) > MAXLINELEN) { +@@ -500,7 +501,7 @@ int jas_seq2d_output(jas_matrix_t *matrix, FILE *out) fputs("\n", out); buf[0] = '\0'; } Index: graphics/jasper/patches/patch-src_libjasper_base_jas_stream_c =================================================================== RCS file: /cvs/ports/graphics/jasper/patches/patch-src_libjasper_base_jas_stream_c,v retrieving revision 1.1 diff -u -p -r1.1 patch-src_libjasper_base_jas_stream_c --- graphics/jasper/patches/patch-src_libjasper_base_jas_stream_c 17 May 2008 09:32:16 -0000 1.1 +++ graphics/jasper/patches/patch-src_libjasper_base_jas_stream_c 9 Dec 2017 12:41:27 -0000 @@ -1,16 +1,8 @@ $OpenBSD: patch-src_libjasper_base_jas_stream_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/base/jas_stream.c.orig Fri Jan 19 22:43:05 2007 -+++ src/libjasper/base/jas_stream.c Fri May 16 22:50:27 2008 -@@ -212,7 +212,7 @@ jas_stream_t *jas_stream_memopen(char *buf, int bufsiz - if (buf) { - obj->buf_ = (unsigned char *) buf; - } else { -- obj->buf_ = jas_malloc(obj->bufsize_ * sizeof(char)); -+ obj->buf_ = jas_malloc(obj->bufsize_); - obj->myalloc_ = 1; - } - if (!obj->buf_) { -@@ -361,28 +361,22 @@ jas_stream_t *jas_stream_tmpfile() +Index: src/libjasper/base/jas_stream.c +--- src/libjasper/base/jas_stream.c.orig ++++ src/libjasper/base/jas_stream.c +@@ -513,28 +513,21 @@ jas_stream_t *jas_stream_tmpfile() } obj->fd = -1; obj->flags = 0; @@ -21,7 +13,7 @@ $OpenBSD: patch-src_libjasper_base_jas_s - tmpnam(obj->pathname); + snprintf(obj->pathname, sizeof obj->pathname, "%stmp.XXXXXXXXXX", P_tmpdir); - /* Open the underlying file. */ +- /* Open the underlying file. */ - if ((obj->fd = open(obj->pathname, O_CREAT | O_EXCL | O_RDWR | O_TRUNC | O_BINARY, - JAS_STREAM_PERMS)) < 0) { + if ((obj->fd = mkstemp(obj->pathname)) < 0) { @@ -43,21 +35,3 @@ $OpenBSD: patch-src_libjasper_base_jas_s } /* Use full buffering. */ -@@ -553,7 +547,7 @@ int jas_stream_printf(jas_stream_t *stream, const char - int ret; - - va_start(ap, fmt); -- ret = vsprintf(buf, fmt, ap); -+ ret = vsnprintf(buf, sizeof buf, fmt, ap); - jas_stream_puts(stream, buf); - va_end(ap); - return ret; -@@ -992,7 +986,7 @@ static int mem_resize(jas_stream_memobj_t *m, int bufs - unsigned char *buf; - - assert(m->buf_); -- if (!(buf = jas_realloc(m->buf_, bufsize * sizeof(unsigned char)))) { -+ if (!(buf = jas_realloc(m->buf_, bufsize))) { - return -1; - } - m->buf_ = buf; Index: graphics/jasper/patches/patch-src_libjasper_base_jas_string_c =================================================================== RCS file: /cvs/ports/graphics/jasper/patches/patch-src_libjasper_base_jas_string_c,v retrieving revision 1.1 diff -u -p -r1.1 patch-src_libjasper_base_jas_string_c --- graphics/jasper/patches/patch-src_libjasper_base_jas_string_c 17 May 2008 09:32:16 -0000 1.1 +++ graphics/jasper/patches/patch-src_libjasper_base_jas_string_c 9 Dec 2017 12:13:56 -0000 @@ -1,12 +1,10 @@ -$OpenBSD: patch-src_libjasper_base_jas_string_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/base/jas_string.c.orig Fri May 16 20:22:22 2008 -+++ src/libjasper/base/jas_string.c Fri May 16 20:23:02 2008 -@@ -88,9 +88,9 @@ char *jas_strdup(const char *s) - int n; - char *p; - n = strlen(s) + 1; -- if (!(p = jas_malloc(n * sizeof(char)))) { -+ if (!(p = jas_malloc(n))) { +$OpenBSD$ + +Index: src/libjasper/base/jas_string.c +--- src/libjasper/base/jas_string.c.orig ++++ src/libjasper/base/jas_string.c +@@ -91,6 +91,6 @@ char *jas_strdup(const char *s) + if (!(p = jas_malloc(n))) { return 0; } - strcpy(p, s); Index: graphics/jasper/patches/patch-src_libjasper_bmp_bmp_dec_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_bmp_bmp_dec_c diff -N graphics/jasper/patches/patch-src_libjasper_bmp_bmp_dec_c --- graphics/jasper/patches/patch-src_libjasper_bmp_bmp_dec_c 17 May 2008 09:32:16 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -$OpenBSD: patch-src_libjasper_bmp_bmp_dec_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/bmp/bmp_dec.c.orig Fri May 16 21:00:25 2008 -+++ src/libjasper/bmp/bmp_dec.c Fri May 16 21:27:14 2008 -@@ -283,7 +283,7 @@ static bmp_info_t *bmp_getinfo(jas_stream_t *in) - } - - if (info->numcolors > 0) { -- if (!(info->palents = jas_malloc(info->numcolors * -+ if (!(info->palents = jas_alloc2(info->numcolors, - sizeof(bmp_palent_t)))) { - bmp_info_destroy(info); - return 0; Index: graphics/jasper/patches/patch-src_libjasper_include_jasper_jas_malloc_h =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_include_jasper_jas_malloc_h diff -N graphics/jasper/patches/patch-src_libjasper_include_jasper_jas_malloc_h --- graphics/jasper/patches/patch-src_libjasper_include_jasper_jas_malloc_h 17 May 2008 09:32:16 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,26 +0,0 @@ -$OpenBSD: patch-src_libjasper_include_jasper_jas_malloc_h,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/include/jasper/jas_malloc.h.orig Fri May 16 20:57:11 2008 -+++ src/libjasper/include/jasper/jas_malloc.h Fri May 16 21:31:48 2008 -@@ -95,6 +95,9 @@ extern "C" { - #define jas_free MEMFREE - #define jas_realloc MEMREALLOC - #define jas_calloc MEMCALLOC -+#define jas_alloc2(a, b) MEMALLOC((a)*(b)) -+#define jas_alloc3(a, b, c) MEMALLOC((a)*(b)*(c)) -+#define jas_realloc2(p, a, b) MEMREALLOC((p), (a)*(b)) - #endif - - /******************************************************************************\ -@@ -115,6 +118,12 @@ void *jas_realloc(void *ptr, size_t size); - /* Allocate a block of memory and initialize the contents to zero. */ - void *jas_calloc(size_t nmemb, size_t size); - -+/* size-checked double allocation .*/ -+void *jas_alloc2(size_t, size_t); -+ -+void *jas_alloc3(size_t, size_t, size_t); -+ -+void *jas_realloc2(void *, size_t, size_t); - #endif - - #ifdef __cplusplus Index: graphics/jasper/patches/patch-src_libjasper_jp2_jp2_cod_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_jp2_jp2_cod_c diff -N graphics/jasper/patches/patch-src_libjasper_jp2_jp2_cod_c --- graphics/jasper/patches/patch-src_libjasper_jp2_jp2_cod_c 17 May 2008 09:32:16 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,71 +0,0 @@ -$OpenBSD: patch-src_libjasper_jp2_jp2_cod_c,v 1.2 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/jp2/jp2_cod.c.orig Fri Jan 19 22:43:05 2007 -+++ src/libjasper/jp2/jp2_cod.c Fri May 16 21:28:52 2008 -@@ -372,7 +372,7 @@ static int jp2_bpcc_getdata(jp2_box_t *box, jas_stream - jp2_bpcc_t *bpcc = &box->data.bpcc; - unsigned int i; - bpcc->numcmpts = box->datalen; -- if (!(bpcc->bpcs = jas_malloc(bpcc->numcmpts * sizeof(uint_fast8_t)))) { -+ if (!(bpcc->bpcs = jas_alloc2(bpcc->numcmpts, sizeof(uint_fast8_t)))) { - return -1; - } - for (i = 0; i < bpcc->numcmpts; ++i) { -@@ -416,7 +416,7 @@ static int jp2_colr_getdata(jp2_box_t *box, jas_stream - break; - case JP2_COLR_ICC: - colr->iccplen = box->datalen - 3; -- if (!(colr->iccp = jas_malloc(colr->iccplen * sizeof(uint_fast8_t)))) { -+ if (!(colr->iccp = jas_alloc2(colr->iccplen, sizeof(uint_fast8_t)))) { - return -1; - } - if (jas_stream_read(in, colr->iccp, colr->iccplen) != colr->iccplen) { -@@ -453,7 +453,7 @@ static int jp2_cdef_getdata(jp2_box_t *box, jas_stream - if (jp2_getuint16(in, &cdef->numchans)) { - return -1; - } -- if (!(cdef->ents = jas_malloc(cdef->numchans * sizeof(jp2_cdefchan_t)))) { -+ if (!(cdef->ents = jas_alloc2(cdef->numchans, sizeof(jp2_cdefchan_t)))) { - return -1; - } - for (channo = 0; channo < cdef->numchans; ++channo) { -@@ -766,7 +766,7 @@ static int jp2_cmap_getdata(jp2_box_t *box, jas_stream - unsigned int i; - - cmap->numchans = (box->datalen) / 4; -- if (!(cmap->ents = jas_malloc(cmap->numchans * sizeof(jp2_cmapent_t)))) { -+ if (!(cmap->ents = jas_alloc2(cmap->numchans, sizeof(jp2_cmapent_t)))) { - return -1; - } - for (i = 0; i < cmap->numchans; ++i) { -@@ -795,11 +795,15 @@ static void jp2_cmap_dumpdata(jp2_box_t *box, FILE *ou - jp2_cmap_t *cmap = &box->data.cmap; - unsigned int i; - jp2_cmapent_t *ent; -- fprintf(out, "numchans = %d\n", (int) cmap->numchans); -+ if (jas_getdbglevel() >= 1) { -+ fprintf(out, "numchans = %d\n", (int) cmap->numchans); -+ } - for (i = 0; i < cmap->numchans; ++i) { - ent = &cmap->ents[i]; -- fprintf(out, "cmptno=%d; map=%d; pcol=%d\n", -- (int) ent->cmptno, (int) ent->map, (int) ent->pcol); -+ if (jas_getdbglevel() >= 1) { -+ fprintf(out, "cmptno=%d; map=%d; pcol=%d\n", -+ (int) ent->cmptno, (int) ent->map, (int) ent->pcol); -+ } - } - } - -@@ -828,10 +832,10 @@ static int jp2_pclr_getdata(jp2_box_t *box, jas_stream - return -1; - } - lutsize = pclr->numlutents * pclr->numchans; -- if (!(pclr->lutdata = jas_malloc(lutsize * sizeof(int_fast32_t)))) { -+ if (!(pclr->lutdata = jas_alloc2(lutsize, sizeof(int_fast32_t)))) { - return -1; - } -- if (!(pclr->bpc = jas_malloc(pclr->numchans * sizeof(uint_fast8_t)))) { -+ if (!(pclr->bpc = jas_alloc2(pclr->numchans, sizeof(uint_fast8_t)))) { - return -1; - } - for (i = 0; i < pclr->numchans; ++i) { Index: graphics/jasper/patches/patch-src_libjasper_jp2_jp2_dec_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_jp2_jp2_dec_c diff -N graphics/jasper/patches/patch-src_libjasper_jp2_jp2_dec_c --- graphics/jasper/patches/patch-src_libjasper_jp2_jp2_dec_c 6 Nov 2015 22:28:29 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,55 +0,0 @@ -$OpenBSD: patch-src_libjasper_jp2_jp2_dec_c,v 1.3 2015/11/06 22:28:29 sthen Exp $ - -Security fixes from Slackware: - CVE-2014-8137: double-free - CVE-2014-8138: heap-based buffer overflow - ---- src/libjasper/jp2/jp2_dec.c.orig Fri Jan 19 13:43:05 2007 -+++ src/libjasper/jp2/jp2_dec.c Thu Oct 29 22:04:41 2015 -@@ -291,9 +291,14 @@ jas_image_t *jp2_decode(jas_stream_t *in, char *optstr - case JP2_COLR_ICC: - iccprof = jas_iccprof_createfrombuf(dec->colr->data.colr.iccp, - dec->colr->data.colr.iccplen); -- assert(iccprof); -+ if (!iccprof) { -+ jas_eprintf("error: failed to parse ICC profile\n"); -+ goto error; -+ } - jas_iccprof_gethdr(iccprof, &icchdr); -- jas_eprintf("ICC Profile CS %08x\n", icchdr.colorspc); -+ if (jas_getdbglevel() >= 1) { -+ jas_eprintf("ICC Profile CS %08x\n", icchdr.colorspc); -+ } - jas_image_setclrspc(dec->image, fromiccpcs(icchdr.colorspc)); - dec->image->cmprof_ = jas_cmprof_createfromiccprof(iccprof); - assert(dec->image->cmprof_); -@@ -336,7 +341,7 @@ jas_image_t *jp2_decode(jas_stream_t *in, char *optstr - } - - /* Allocate space for the channel-number to component-number LUT. */ -- if (!(dec->chantocmptlut = jas_malloc(dec->numchans * sizeof(uint_fast16_t)))) { -+ if (!(dec->chantocmptlut = jas_alloc2(dec->numchans, sizeof(uint_fast16_t)))) { - jas_eprintf("error: no memory\n"); - goto error; - } -@@ -354,7 +359,7 @@ jas_image_t *jp2_decode(jas_stream_t *in, char *optstr - if (cmapent->map == JP2_CMAP_DIRECT) { - dec->chantocmptlut[channo] = channo; - } else if (cmapent->map == JP2_CMAP_PALETTE) { -- lutents = jas_malloc(pclrd->numlutents * sizeof(int_fast32_t)); -+ lutents = jas_alloc2(pclrd->numlutents, sizeof(int_fast32_t)); - for (i = 0; i < pclrd->numlutents; ++i) { - lutents[i] = pclrd->lutdata[cmapent->pcol + i * pclrd->numchans]; - } -@@ -386,6 +391,11 @@ jas_image_t *jp2_decode(jas_stream_t *in, char *optstr - /* Determine the type of each component. */ - if (dec->cdef) { - for (i = 0; i < dec->numchans; ++i) { -+ /* Is the channel number reasonable? */ -+ if (dec->cdef->data.cdef.ents[i].channo >= dec->numchans) { -+ jas_eprintf("error: invalid channel number in CDEF box\n"); -+ goto error; -+ } - jas_image_setcmpttype(dec->image, - dec->chantocmptlut[dec->cdef->data.cdef.ents[i].channo], - jp2_getct(jas_image_clrspc(dec->image), Index: graphics/jasper/patches/patch-src_libjasper_jp2_jp2_enc_c =================================================================== RCS file: /cvs/ports/graphics/jasper/patches/patch-src_libjasper_jp2_jp2_enc_c,v retrieving revision 1.1 diff -u -p -r1.1 patch-src_libjasper_jp2_jp2_enc_c --- graphics/jasper/patches/patch-src_libjasper_jp2_jp2_enc_c 17 May 2008 09:32:16 -0000 1.1 +++ graphics/jasper/patches/patch-src_libjasper_jp2_jp2_enc_c 9 Dec 2017 12:16:22 -0000 @@ -1,25 +1,9 @@ -$OpenBSD: patch-src_libjasper_jp2_jp2_enc_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/jp2/jp2_enc.c.orig Fri Jan 19 22:43:05 2007 -+++ src/libjasper/jp2/jp2_enc.c Fri May 16 21:27:52 2008 -@@ -191,7 +191,7 @@ int sgnd; - } - bpcc = &box->data.bpcc; - bpcc->numcmpts = jas_image_numcmpts(image); -- if (!(bpcc->bpcs = jas_malloc(bpcc->numcmpts * -+ if (!(bpcc->bpcs = jas_alloc2(bpcc->numcmpts, - sizeof(uint_fast8_t)))) { - goto error; - } -@@ -285,7 +285,7 @@ int sgnd; - } - cdef = &box->data.cdef; - cdef->numchans = jas_image_numcmpts(image); -- cdef->ents = jas_malloc(cdef->numchans * sizeof(jp2_cdefchan_t)); -+ cdef->ents = jas_alloc2(cdef->numchans, sizeof(jp2_cdefchan_t)); - for (i = 0; i < jas_image_numcmpts(image); ++i) { - cdefchanent = &cdef->ents[i]; - cdefchanent->channo = i; -@@ -343,7 +343,8 @@ int sgnd; +$OpenBSD$ + +Index: src/libjasper/jp2/jp2_enc.c +--- src/libjasper/jp2/jp2_enc.c.orig ++++ src/libjasper/jp2/jp2_enc.c +@@ -391,7 +391,8 @@ int jp2_encode(jas_image_t *image, jas_stream_t *out, /* Output the JPEG-2000 code stream. */ overhead = jas_stream_getrwcount(out); Index: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_cs_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_cs_c diff -N graphics/jasper/patches/patch-src_libjasper_jpc_jpc_cs_c --- graphics/jasper/patches/patch-src_libjasper_jpc_jpc_cs_c 20 Apr 2013 15:25:35 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,82 +0,0 @@ -$OpenBSD: patch-src_libjasper_jpc_jpc_cs_c,v 1.4 2013/04/20 15:25:35 naddy Exp $ ---- src/libjasper/jpc/jpc_cs.c.orig Fri Jan 19 22:43:07 2007 -+++ src/libjasper/jpc/jpc_cs.c Fri Apr 19 18:32:09 2013 -@@ -502,7 +502,7 @@ static int jpc_siz_getparms(jpc_ms_t *ms, jpc_cstate_t - !siz->tileheight || !siz->numcomps) { - return -1; - } -- if (!(siz->comps = jas_malloc(siz->numcomps * sizeof(jpc_sizcomp_t)))) { -+ if (!(siz->comps = jas_alloc2(siz->numcomps, sizeof(jpc_sizcomp_t)))) { - return -1; - } - for (i = 0; i < siz->numcomps; ++i) { -@@ -744,6 +744,10 @@ static int jpc_cox_getcompparms(jpc_ms_t *ms, jpc_csta - return -1; - } - compparms->numrlvls = compparms->numdlvls + 1; -+ if (compparms->numrlvls > JPC_MAXRLVLS) { -+ jpc_cox_destroycompparms(compparms); -+ return -1; -+ } - if (prtflag) { - for (i = 0; i < compparms->numrlvls; ++i) { - if (jpc_getuint8(in, &tmp)) { -@@ -982,8 +986,12 @@ static int jpc_qcx_getcompparms(jpc_qcxcp_t *compparms - compparms->numstepsizes = (len - n) / 2; - break; - } -+ if (compparms->numstepsizes > 3 * JPC_MAXRLVLS + 1) { -+ jpc_qcx_destroycompparms(compparms); -+ return -1; -+ } - if (compparms->numstepsizes > 0) { -- compparms->stepsizes = jas_malloc(compparms->numstepsizes * -+ compparms->stepsizes = jas_alloc2(compparms->numstepsizes, - sizeof(uint_fast16_t)); - assert(compparms->stepsizes); - for (i = 0; i < compparms->numstepsizes; ++i) { -@@ -1091,7 +1099,7 @@ static int jpc_ppm_getparms(jpc_ms_t *ms, jpc_cstate_t - - ppm->len = ms->len - 1; - if (ppm->len > 0) { -- if (!(ppm->data = jas_malloc(ppm->len * sizeof(unsigned char)))) { -+ if (!(ppm->data = jas_malloc(ppm->len))) { - goto error; - } - if (JAS_CAST(uint, jas_stream_read(in, ppm->data, ppm->len)) != ppm->len) { -@@ -1160,7 +1168,7 @@ static int jpc_ppt_getparms(jpc_ms_t *ms, jpc_cstate_t - } - ppt->len = ms->len - 1; - if (ppt->len > 0) { -- if (!(ppt->data = jas_malloc(ppt->len * sizeof(unsigned char)))) { -+ if (!(ppt->data = jas_malloc(ppt->len))) { - goto error; - } - if (jas_stream_read(in, (char *) ppt->data, ppt->len) != JAS_CAST(int, ppt->len)) { -@@ -1223,7 +1231,7 @@ static int jpc_poc_getparms(jpc_ms_t *ms, jpc_cstate_t - uint_fast8_t tmp; - poc->numpchgs = (cstate->numcomps > 256) ? (ms->len / 9) : - (ms->len / 7); -- if (!(poc->pchgs = jas_malloc(poc->numpchgs * sizeof(jpc_pocpchg_t)))) { -+ if (!(poc->pchgs = jas_alloc2(poc->numpchgs, sizeof(jpc_pocpchg_t)))) { - goto error; - } - for (pchgno = 0, pchg = poc->pchgs; pchgno < poc->numpchgs; ++pchgno, -@@ -1328,7 +1336,7 @@ static int jpc_crg_getparms(jpc_ms_t *ms, jpc_cstate_t - jpc_crgcomp_t *comp; - uint_fast16_t compno; - crg->numcomps = cstate->numcomps; -- if (!(crg->comps = jas_malloc(cstate->numcomps * sizeof(uint_fast16_t)))) { -+ if (!(crg->comps = jas_alloc2(cstate->numcomps, sizeof(jpc_crgcomp_t)))) { - return -1; - } - for (compno = 0, comp = crg->comps; compno < cstate->numcomps; -@@ -1467,7 +1475,7 @@ static int jpc_unk_getparms(jpc_ms_t *ms, jpc_cstate_t - cstate = 0; - - if (ms->len > 0) { -- if (!(unk->data = jas_malloc(ms->len * sizeof(unsigned char)))) { -+ if (!(unk->data = jas_malloc(ms->len))) { - return -1; - } - if (jas_stream_read(in, (char *) unk->data, ms->len) != JAS_CAST(int, ms->len)) { Index: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_dec_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_dec_c diff -N graphics/jasper/patches/patch-src_libjasper_jpc_jpc_dec_c --- graphics/jasper/patches/patch-src_libjasper_jpc_jpc_dec_c 6 Nov 2015 22:28:29 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,166 +0,0 @@ -$OpenBSD: patch-src_libjasper_jpc_jpc_dec_c,v 1.4 2015/11/06 22:28:29 sthen Exp $ - -Security fixes from Slackware: - CVE-2014-8157: off-by-one - CVE-2014-9029: multiple off-by-one - ---- src/libjasper/jpc/jpc_dec.c.orig Fri Jan 19 13:43:07 2007 -+++ src/libjasper/jpc/jpc_dec.c Thu Oct 29 22:08:08 2015 -@@ -449,7 +449,7 @@ static int jpc_dec_process_sot(jpc_dec_t *dec, jpc_ms_ - - if (dec->state == JPC_MH) { - -- compinfos = jas_malloc(dec->numcomps * sizeof(jas_image_cmptparm_t)); -+ compinfos = jas_alloc2(dec->numcomps, sizeof(jas_image_cmptparm_t)); - assert(compinfos); - for (cmptno = 0, cmpt = dec->cmpts, compinfo = compinfos; - cmptno < dec->numcomps; ++cmptno, ++cmpt, ++compinfo) { -@@ -489,7 +489,7 @@ static int jpc_dec_process_sot(jpc_dec_t *dec, jpc_ms_ - dec->curtileendoff = 0; - } - -- if (JAS_CAST(int, sot->tileno) > dec->numtiles) { -+ if (JAS_CAST(int, sot->tileno) >= dec->numtiles) { - jas_eprintf("invalid tile number in SOT marker segment\n"); - return -1; - } -@@ -692,7 +692,7 @@ static int jpc_dec_tileinit(jpc_dec_t *dec, jpc_dec_ti - tile->realmode = 1; - } - tcomp->numrlvls = ccp->numrlvls; -- if (!(tcomp->rlvls = jas_malloc(tcomp->numrlvls * -+ if (!(tcomp->rlvls = jas_alloc2(tcomp->numrlvls, - sizeof(jpc_dec_rlvl_t)))) { - return -1; - } -@@ -764,7 +764,7 @@ rlvl->bands = 0; - rlvl->cbgheightexpn); - - rlvl->numbands = (!rlvlno) ? 1 : 3; -- if (!(rlvl->bands = jas_malloc(rlvl->numbands * -+ if (!(rlvl->bands = jas_alloc2(rlvl->numbands, - sizeof(jpc_dec_band_t)))) { - return -1; - } -@@ -797,7 +797,7 @@ rlvl->bands = 0; - - assert(rlvl->numprcs); - -- if (!(band->prcs = jas_malloc(rlvl->numprcs * sizeof(jpc_dec_prc_t)))) { -+ if (!(band->prcs = jas_alloc2(rlvl->numprcs, sizeof(jpc_dec_prc_t)))) { - return -1; - } - -@@ -834,7 +834,7 @@ rlvl->bands = 0; - if (!(prc->numimsbstagtree = jpc_tagtree_create(prc->numhcblks, prc->numvcblks))) { - return -1; - } -- if (!(prc->cblks = jas_malloc(prc->numcblks * sizeof(jpc_dec_cblk_t)))) { -+ if (!(prc->cblks = jas_alloc2(prc->numcblks, sizeof(jpc_dec_cblk_t)))) { - return -1; - } - -@@ -1181,7 +1181,7 @@ static int jpc_dec_process_siz(jpc_dec_t *dec, jpc_ms_ - return -1; - } - -- if (!(dec->cmpts = jas_malloc(dec->numcomps * sizeof(jpc_dec_cmpt_t)))) { -+ if (!(dec->cmpts = jas_alloc2(dec->numcomps, sizeof(jpc_dec_cmpt_t)))) { - return -1; - } - -@@ -1204,7 +1204,7 @@ static int jpc_dec_process_siz(jpc_dec_t *dec, jpc_ms_ - dec->numhtiles = JPC_CEILDIV(dec->xend - dec->tilexoff, dec->tilewidth); - dec->numvtiles = JPC_CEILDIV(dec->yend - dec->tileyoff, dec->tileheight); - dec->numtiles = dec->numhtiles * dec->numvtiles; -- if (!(dec->tiles = jas_malloc(dec->numtiles * sizeof(jpc_dec_tile_t)))) { -+ if (!(dec->tiles = jas_alloc2(dec->numtiles, sizeof(jpc_dec_tile_t)))) { - return -1; - } - -@@ -1228,7 +1228,7 @@ static int jpc_dec_process_siz(jpc_dec_t *dec, jpc_ms_ - tile->pkthdrstreampos = 0; - tile->pptstab = 0; - tile->cp = 0; -- if (!(tile->tcomps = jas_malloc(dec->numcomps * -+ if (!(tile->tcomps = jas_alloc2(dec->numcomps, - sizeof(jpc_dec_tcomp_t)))) { - return -1; - } -@@ -1280,7 +1280,7 @@ static int jpc_dec_process_coc(jpc_dec_t *dec, jpc_ms_ - jpc_coc_t *coc = &ms->parms.coc; - jpc_dec_tile_t *tile; - -- if (JAS_CAST(int, coc->compno) > dec->numcomps) { -+ if (JAS_CAST(int, coc->compno) >= dec->numcomps) { - jas_eprintf("invalid component number in COC marker segment\n"); - return -1; - } -@@ -1306,7 +1306,7 @@ static int jpc_dec_process_rgn(jpc_dec_t *dec, jpc_ms_ - jpc_rgn_t *rgn = &ms->parms.rgn; - jpc_dec_tile_t *tile; - -- if (JAS_CAST(int, rgn->compno) > dec->numcomps) { -+ if (JAS_CAST(int, rgn->compno) >= dec->numcomps) { - jas_eprintf("invalid component number in RGN marker segment\n"); - return -1; - } -@@ -1355,7 +1355,7 @@ static int jpc_dec_process_qcc(jpc_dec_t *dec, jpc_ms_ - jpc_qcc_t *qcc = &ms->parms.qcc; - jpc_dec_tile_t *tile; - -- if (JAS_CAST(int, qcc->compno) > dec->numcomps) { -+ if (JAS_CAST(int, qcc->compno) >= dec->numcomps) { - jas_eprintf("invalid component number in QCC marker segment\n"); - return -1; - } -@@ -1466,7 +1466,9 @@ static int jpc_dec_process_unk(jpc_dec_t *dec, jpc_ms_ - dec = 0; - - jas_eprintf("warning: ignoring unknown marker segment\n"); -- jpc_ms_dump(ms, stderr); -+ if (jas_getdbglevel() >= 1) { -+ jpc_ms_dump(ms, stderr); -+ } - return 0; - } - -@@ -1489,7 +1491,7 @@ static jpc_dec_cp_t *jpc_dec_cp_create(uint_fast16_t n - cp->numlyrs = 0; - cp->mctid = 0; - cp->csty = 0; -- if (!(cp->ccps = jas_malloc(cp->numcomps * sizeof(jpc_dec_ccp_t)))) { -+ if (!(cp->ccps = jas_alloc2(cp->numcomps, sizeof(jpc_dec_ccp_t)))) { - return 0; - } - if (!(cp->pchglist = jpc_pchglist_create())) { -@@ -2048,7 +2050,7 @@ jpc_streamlist_t *jpc_streamlist_create() - } - streamlist->numstreams = 0; - streamlist->maxstreams = 100; -- if (!(streamlist->streams = jas_malloc(streamlist->maxstreams * -+ if (!(streamlist->streams = jas_alloc2(streamlist->maxstreams, - sizeof(jas_stream_t *)))) { - jas_free(streamlist); - return 0; -@@ -2068,8 +2070,8 @@ int jpc_streamlist_insert(jpc_streamlist_t *streamlist - /* Grow the array of streams if necessary. */ - if (streamlist->numstreams >= streamlist->maxstreams) { - newmaxstreams = streamlist->maxstreams + 1024; -- if (!(newstreams = jas_realloc(streamlist->streams, -- (newmaxstreams + 1024) * sizeof(jas_stream_t *)))) { -+ if (!(newstreams = jas_realloc2(streamlist->streams, -+ (newmaxstreams + 1024), sizeof(jas_stream_t *)))) { - return -1; - } - for (i = streamlist->numstreams; i < streamlist->maxstreams; ++i) { -@@ -2155,8 +2157,7 @@ int jpc_ppxstab_grow(jpc_ppxstab_t *tab, int maxents) - { - jpc_ppxstabent_t **newents; - if (tab->maxents < maxents) { -- newents = (tab->ents) ? jas_realloc(tab->ents, maxents * -- sizeof(jpc_ppxstabent_t *)) : jas_malloc(maxents * sizeof(jpc_ppxstabent_t *)); -+ newents = jas_realloc2(tab->ents, maxents, sizeof(jpc_ppxstabent_t *)); - if (!newents) { - return -1; - } Index: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_enc_c =================================================================== RCS file: /cvs/ports/graphics/jasper/patches/patch-src_libjasper_jpc_jpc_enc_c,v retrieving revision 1.1 diff -u -p -r1.1 patch-src_libjasper_jpc_jpc_enc_c --- graphics/jasper/patches/patch-src_libjasper_jpc_jpc_enc_c 17 May 2008 09:32:16 -0000 1.1 +++ graphics/jasper/patches/patch-src_libjasper_jpc_jpc_enc_c 9 Dec 2017 12:17:20 -0000 @@ -1,103 +1,15 @@ -$OpenBSD: patch-src_libjasper_jpc_jpc_enc_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/jpc/jpc_enc.c.orig Fri Jan 19 22:43:07 2007 -+++ src/libjasper/jpc/jpc_enc.c Fri May 16 21:40:21 2008 -@@ -403,7 +403,7 @@ static jpc_enc_cp_t *cp_create(char *optstr, jas_image - vsteplcm *= jas_image_cmptvstep(image, cmptno); - } - -- if (!(cp->ccps = jas_malloc(cp->numcmpts * sizeof(jpc_enc_ccp_t)))) { -+ if (!(cp->ccps = jas_alloc2(cp->numcmpts, sizeof(jpc_enc_ccp_t)))) { - goto error; - } - for (cmptno = 0, ccp = cp->ccps; cmptno < JAS_CAST(int, cp->numcmpts); ++cmptno, -@@ -656,7 +656,7 @@ static jpc_enc_cp_t *cp_create(char *optstr, jas_image - - if (ilyrrates && numilyrrates > 0) { - tcp->numlyrs = numilyrrates + 1; -- if (!(tcp->ilyrrates = jas_malloc((tcp->numlyrs - 1) * -+ if (!(tcp->ilyrrates = jas_alloc2((tcp->numlyrs - 1), - sizeof(jpc_fix_t)))) { - goto error; - } -@@ -940,7 +940,7 @@ startoff = jas_stream_getrwcount(enc->out); - siz->tilewidth = cp->tilewidth; - siz->tileheight = cp->tileheight; - siz->numcomps = cp->numcmpts; -- siz->comps = jas_malloc(siz->numcomps * sizeof(jpc_sizcomp_t)); -+ siz->comps = jas_alloc2(siz->numcomps, sizeof(jpc_sizcomp_t)); - assert(siz->comps); - for (i = 0; i < JAS_CAST(int, cp->numcmpts); ++i) { - siz->comps[i].prec = cp->ccps[i].prec; -@@ -958,7 +958,8 @@ startoff = jas_stream_getrwcount(enc->out); - if (!(enc->mrk = jpc_ms_create(JPC_MS_COM))) { +$OpenBSD$ + +Index: src/libjasper/jpc/jpc_enc.c +--- src/libjasper/jpc/jpc_enc.c.orig ++++ src/libjasper/jpc/jpc_enc.c +@@ -966,7 +966,8 @@ startoff = jas_stream_getrwcount(enc->out); + jas_eprintf("cannot create COM marker\n"); return -1; } - sprintf(buf, "Creator: JasPer Version %s", jas_getversion()); -+ snprintf(buf, sizeof buf, "Creator: JasPer Version %s", ++ snprintf(buf, sizeof buf, "Creator: JasPer Version %s", + jas_getversion()); com = &enc->mrk->parms.com; - com->len = strlen(buf); + com->len = JAS_CAST(uint_fast16_t, strlen(buf)); com->regid = JPC_COM_LATIN; -@@ -977,7 +978,7 @@ startoff = jas_stream_getrwcount(enc->out); - return -1; - } - crg = &enc->mrk->parms.crg; -- crg->comps = jas_malloc(crg->numcomps * sizeof(jpc_crgcomp_t)); -+ crg->comps = jas_alloc2(crg->numcomps, sizeof(jpc_crgcomp_t)); - if (jpc_putms(enc->out, enc->cstate, enc->mrk)) { - jas_eprintf("cannot write CRG marker\n"); - return -1; -@@ -1955,7 +1956,7 @@ jpc_enc_tile_t *jpc_enc_tile_create(jpc_enc_cp_t *cp, - tile->mctid = cp->tcp.mctid; - - tile->numlyrs = cp->tcp.numlyrs; -- if (!(tile->lyrsizes = jas_malloc(tile->numlyrs * -+ if (!(tile->lyrsizes = jas_alloc2(tile->numlyrs, - sizeof(uint_fast32_t)))) { - goto error; - } -@@ -1964,7 +1965,7 @@ jpc_enc_tile_t *jpc_enc_tile_create(jpc_enc_cp_t *cp, - } - - /* Allocate an array for the per-tile-component information. */ -- if (!(tile->tcmpts = jas_malloc(cp->numcmpts * sizeof(jpc_enc_tcmpt_t)))) { -+ if (!(tile->tcmpts = jas_alloc2(cp->numcmpts, sizeof(jpc_enc_tcmpt_t)))) { - goto error; - } - /* Initialize a few members critical for error recovery. */ -@@ -2110,7 +2111,7 @@ static jpc_enc_tcmpt_t *tcmpt_create(jpc_enc_tcmpt_t * - jas_seq2d_ystart(tcmpt->data), jas_seq2d_xend(tcmpt->data), - jas_seq2d_yend(tcmpt->data), bandinfos); - -- if (!(tcmpt->rlvls = jas_malloc(tcmpt->numrlvls * sizeof(jpc_enc_rlvl_t)))) { -+ if (!(tcmpt->rlvls = jas_alloc2(tcmpt->numrlvls, sizeof(jpc_enc_rlvl_t)))) { - goto error; - } - for (rlvlno = 0, rlvl = tcmpt->rlvls; rlvlno < tcmpt->numrlvls; -@@ -2213,7 +2214,7 @@ static jpc_enc_rlvl_t *rlvl_create(jpc_enc_rlvl_t *rlv - rlvl->numvprcs = JPC_FLOORDIVPOW2(brprcbry - tlprctly, rlvl->prcheightexpn); - rlvl->numprcs = rlvl->numhprcs * rlvl->numvprcs; - -- if (!(rlvl->bands = jas_malloc(rlvl->numbands * sizeof(jpc_enc_band_t)))) { -+ if (!(rlvl->bands = jas_alloc2(rlvl->numbands, sizeof(jpc_enc_band_t)))) { - goto error; - } - for (bandno = 0, band = rlvl->bands; bandno < rlvl->numbands; -@@ -2290,7 +2291,7 @@ if (bandinfo->xstart != bandinfo->xend && bandinfo->ys - band->synweight = bandinfo->synenergywt; - - if (band->data) { -- if (!(band->prcs = jas_malloc(rlvl->numprcs * sizeof(jpc_enc_prc_t)))) { -+ if (!(band->prcs = jas_alloc2(rlvl->numprcs, sizeof(jpc_enc_prc_t)))) { - goto error; - } - for (prcno = 0, prc = band->prcs; prcno < rlvl->numprcs; ++prcno, -@@ -2422,7 +2423,7 @@ if (!rlvlno) { - goto error; - } - -- if (!(prc->cblks = jas_malloc(prc->numcblks * sizeof(jpc_enc_cblk_t)))) { -+ if (!(prc->cblks = jas_alloc2(prc->numcblks, sizeof(jpc_enc_cblk_t)))) { - goto error; - } - for (cblkno = 0, cblk = prc->cblks; cblkno < prc->numcblks; Index: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_mqdec_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_mqdec_c diff -N graphics/jasper/patches/patch-src_libjasper_jpc_jpc_mqdec_c --- graphics/jasper/patches/patch-src_libjasper_jpc_jpc_mqdec_c 17 May 2008 09:32:16 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -$OpenBSD: patch-src_libjasper_jpc_jpc_mqdec_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/jpc/jpc_mqdec.c.orig Fri May 16 21:00:25 2008 -+++ src/libjasper/jpc/jpc_mqdec.c Fri May 16 21:05:37 2008 -@@ -118,7 +118,7 @@ jpc_mqdec_t *jpc_mqdec_create(int maxctxs, jas_stream_ - mqdec->in = in; - mqdec->maxctxs = maxctxs; - /* Allocate memory for the per-context state information. */ -- if (!(mqdec->ctxs = jas_malloc(mqdec->maxctxs * sizeof(jpc_mqstate_t *)))) { -+ if (!(mqdec->ctxs = jas_alloc2(mqdec->maxctxs, sizeof(jpc_mqstate_t *)))) { - goto error; - } - /* Set the current context to the first context. */ Index: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_mqenc_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_mqenc_c diff -N graphics/jasper/patches/patch-src_libjasper_jpc_jpc_mqenc_c --- graphics/jasper/patches/patch-src_libjasper_jpc_jpc_mqenc_c 17 May 2008 09:32:16 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -$OpenBSD: patch-src_libjasper_jpc_jpc_mqenc_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/jpc/jpc_mqenc.c.orig Fri May 16 21:00:25 2008 -+++ src/libjasper/jpc/jpc_mqenc.c Fri May 16 21:00:52 2008 -@@ -197,7 +197,7 @@ jpc_mqenc_t *jpc_mqenc_create(int maxctxs, jas_stream_ - mqenc->maxctxs = maxctxs; - - /* Allocate memory for the per-context state information. */ -- if (!(mqenc->ctxs = jas_malloc(mqenc->maxctxs * sizeof(jpc_mqstate_t *)))) { -+ if (!(mqenc->ctxs = jas_alloc2(mqenc->maxctxs, sizeof(jpc_mqstate_t *)))) { - goto error; - } - Index: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_qmfb_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_qmfb_c diff -N graphics/jasper/patches/patch-src_libjasper_jpc_jpc_qmfb_c --- graphics/jasper/patches/patch-src_libjasper_jpc_jpc_qmfb_c 6 Nov 2015 22:28:29 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,341 +0,0 @@ -$OpenBSD: patch-src_libjasper_jpc_jpc_qmfb_c,v 1.2 2015/11/06 22:28:29 sthen Exp $ - -Security fix from Slackware: - CVE-2014-8158: multiple stack-based buffer overflows - ---- src/libjasper/jpc/jpc_qmfb.c.orig Fri Jan 19 13:43:07 2007 -+++ src/libjasper/jpc/jpc_qmfb.c Thu Oct 29 22:06:54 2015 -@@ -306,11 +306,7 @@ void jpc_qmfb_split_row(jpc_fix_t *a, int numcols, int - { - - int bufsize = JPC_CEILDIVPOW2(numcols, 1); --#if !defined(HAVE_VLA) - jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE]; --#else -- jpc_fix_t splitbuf[bufsize]; --#endif - jpc_fix_t *buf = splitbuf; - register jpc_fix_t *srcptr; - register jpc_fix_t *dstptr; -@@ -318,15 +314,13 @@ void jpc_qmfb_split_row(jpc_fix_t *a, int numcols, int - register int m; - int hstartcol; - --#if !defined(HAVE_VLA) - /* Get a buffer. */ - if (bufsize > QMFB_SPLITBUFSIZE) { -- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) { -+ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { - /* We have no choice but to commit suicide in this case. */ - abort(); - } - } --#endif - - if (numcols >= 2) { - hstartcol = (numcols + 1 - parity) >> 1; -@@ -360,12 +354,10 @@ void jpc_qmfb_split_row(jpc_fix_t *a, int numcols, int - } - } - --#if !defined(HAVE_VLA) - /* If the split buffer was allocated on the heap, free this memory. */ - if (buf != splitbuf) { - jas_free(buf); - } --#endif - - } - -@@ -374,11 +366,7 @@ void jpc_qmfb_split_col(jpc_fix_t *a, int numrows, int - { - - int bufsize = JPC_CEILDIVPOW2(numrows, 1); --#if !defined(HAVE_VLA) - jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE]; --#else -- jpc_fix_t splitbuf[bufsize]; --#endif - jpc_fix_t *buf = splitbuf; - register jpc_fix_t *srcptr; - register jpc_fix_t *dstptr; -@@ -386,15 +374,13 @@ void jpc_qmfb_split_col(jpc_fix_t *a, int numrows, int - register int m; - int hstartcol; - --#if !defined(HAVE_VLA) - /* Get a buffer. */ - if (bufsize > QMFB_SPLITBUFSIZE) { -- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) { -+ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { - /* We have no choice but to commit suicide in this case. */ - abort(); - } - } --#endif - - if (numrows >= 2) { - hstartcol = (numrows + 1 - parity) >> 1; -@@ -428,12 +414,10 @@ void jpc_qmfb_split_col(jpc_fix_t *a, int numrows, int - } - } - --#if !defined(HAVE_VLA) - /* If the split buffer was allocated on the heap, free this memory. */ - if (buf != splitbuf) { - jas_free(buf); - } --#endif - - } - -@@ -442,11 +426,7 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a, int numrows, - { - - int bufsize = JPC_CEILDIVPOW2(numrows, 1); --#if !defined(HAVE_VLA) - jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE * JPC_QMFB_COLGRPSIZE]; --#else -- jpc_fix_t splitbuf[bufsize * JPC_QMFB_COLGRPSIZE]; --#endif - jpc_fix_t *buf = splitbuf; - jpc_fix_t *srcptr; - jpc_fix_t *dstptr; -@@ -457,15 +437,13 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a, int numrows, - int m; - int hstartcol; - --#if !defined(HAVE_VLA) - /* Get a buffer. */ - if (bufsize > QMFB_SPLITBUFSIZE) { -- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) { -+ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { - /* We have no choice but to commit suicide in this case. */ - abort(); - } - } --#endif - - if (numrows >= 2) { - hstartcol = (numrows + 1 - parity) >> 1; -@@ -517,12 +495,10 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a, int numrows, - } - } - --#if !defined(HAVE_VLA) - /* If the split buffer was allocated on the heap, free this memory. */ - if (buf != splitbuf) { - jas_free(buf); - } --#endif - - } - -@@ -531,11 +507,7 @@ void jpc_qmfb_split_colres(jpc_fix_t *a, int numrows, - { - - int bufsize = JPC_CEILDIVPOW2(numrows, 1); --#if !defined(HAVE_VLA) - jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE * JPC_QMFB_COLGRPSIZE]; --#else -- jpc_fix_t splitbuf[bufsize * numcols]; --#endif - jpc_fix_t *buf = splitbuf; - jpc_fix_t *srcptr; - jpc_fix_t *dstptr; -@@ -546,15 +518,13 @@ void jpc_qmfb_split_colres(jpc_fix_t *a, int numrows, - int m; - int hstartcol; - --#if !defined(HAVE_VLA) - /* Get a buffer. */ - if (bufsize > QMFB_SPLITBUFSIZE) { -- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) { -+ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { - /* We have no choice but to commit suicide in this case. */ - abort(); - } - } --#endif - - if (numrows >= 2) { - hstartcol = (numrows + 1 - parity) >> 1; -@@ -606,12 +576,10 @@ void jpc_qmfb_split_colres(jpc_fix_t *a, int numrows, - } - } - --#if !defined(HAVE_VLA) - /* If the split buffer was allocated on the heap, free this memory. */ - if (buf != splitbuf) { - jas_free(buf); - } --#endif - - } - -@@ -619,26 +587,20 @@ void jpc_qmfb_join_row(jpc_fix_t *a, int numcols, int - { - - int bufsize = JPC_CEILDIVPOW2(numcols, 1); --#if !defined(HAVE_VLA) - jpc_fix_t joinbuf[QMFB_JOINBUFSIZE]; --#else -- jpc_fix_t joinbuf[bufsize]; --#endif - jpc_fix_t *buf = joinbuf; - register jpc_fix_t *srcptr; - register jpc_fix_t *dstptr; - register int n; - int hstartcol; - --#if !defined(HAVE_VLA) - /* Allocate memory for the join buffer from the heap. */ - if (bufsize > QMFB_JOINBUFSIZE) { -- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) { -+ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { - /* We have no choice but to commit suicide. */ - abort(); - } - } --#endif - - hstartcol = (numcols + 1 - parity) >> 1; - -@@ -670,12 +632,10 @@ void jpc_qmfb_join_row(jpc_fix_t *a, int numcols, int - ++srcptr; - } - --#if !defined(HAVE_VLA) - /* If the join buffer was allocated on the heap, free this memory. */ - if (buf != joinbuf) { - jas_free(buf); - } --#endif - - } - -@@ -684,26 +644,20 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int numrows, int - { - - int bufsize = JPC_CEILDIVPOW2(numrows, 1); --#if !defined(HAVE_VLA) - jpc_fix_t joinbuf[QMFB_JOINBUFSIZE]; --#else -- jpc_fix_t joinbuf[bufsize]; --#endif - jpc_fix_t *buf = joinbuf; - register jpc_fix_t *srcptr; - register jpc_fix_t *dstptr; - register int n; - int hstartcol; - --#if !defined(HAVE_VLA) - /* Allocate memory for the join buffer from the heap. */ - if (bufsize > QMFB_JOINBUFSIZE) { -- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) { -+ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { - /* We have no choice but to commit suicide. */ - abort(); - } - } --#endif - - hstartcol = (numrows + 1 - parity) >> 1; - -@@ -735,12 +689,10 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int numrows, int - ++srcptr; - } - --#if !defined(HAVE_VLA) - /* If the join buffer was allocated on the heap, free this memory. */ - if (buf != joinbuf) { - jas_free(buf); - } --#endif - - } - -@@ -749,11 +701,7 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a, int numrows, i - { - - int bufsize = JPC_CEILDIVPOW2(numrows, 1); --#if !defined(HAVE_VLA) - jpc_fix_t joinbuf[QMFB_JOINBUFSIZE * JPC_QMFB_COLGRPSIZE]; --#else -- jpc_fix_t joinbuf[bufsize * JPC_QMFB_COLGRPSIZE]; --#endif - jpc_fix_t *buf = joinbuf; - jpc_fix_t *srcptr; - jpc_fix_t *dstptr; -@@ -763,15 +711,13 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a, int numrows, i - register int i; - int hstartcol; - --#if !defined(HAVE_VLA) - /* Allocate memory for the join buffer from the heap. */ - if (bufsize > QMFB_JOINBUFSIZE) { -- if (!(buf = jas_malloc(bufsize * JPC_QMFB_COLGRPSIZE * sizeof(jpc_fix_t)))) { -+ if (!(buf = jas_alloc3(bufsize, JPC_QMFB_COLGRPSIZE, sizeof(jpc_fix_t)))) { - /* We have no choice but to commit suicide. */ - abort(); - } - } --#endif - - hstartcol = (numrows + 1 - parity) >> 1; - -@@ -821,12 +767,10 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a, int numrows, i - srcptr += JPC_QMFB_COLGRPSIZE; - } - --#if !defined(HAVE_VLA) - /* If the join buffer was allocated on the heap, free this memory. */ - if (buf != joinbuf) { - jas_free(buf); - } --#endif - - } - -@@ -835,11 +779,7 @@ void jpc_qmfb_join_colres(jpc_fix_t *a, int numrows, i - { - - int bufsize = JPC_CEILDIVPOW2(numrows, 1); --#if !defined(HAVE_VLA) - jpc_fix_t joinbuf[QMFB_JOINBUFSIZE * JPC_QMFB_COLGRPSIZE]; --#else -- jpc_fix_t joinbuf[bufsize * numcols]; --#endif - jpc_fix_t *buf = joinbuf; - jpc_fix_t *srcptr; - jpc_fix_t *dstptr; -@@ -849,15 +789,13 @@ void jpc_qmfb_join_colres(jpc_fix_t *a, int numrows, i - register int i; - int hstartcol; - --#if !defined(HAVE_VLA) - /* Allocate memory for the join buffer from the heap. */ - if (bufsize > QMFB_JOINBUFSIZE) { -- if (!(buf = jas_malloc(bufsize * numcols * sizeof(jpc_fix_t)))) { -+ if (!(buf = jas_alloc3(bufsize, numcols, sizeof(jpc_fix_t)))) { - /* We have no choice but to commit suicide. */ - abort(); - } - } --#endif - - hstartcol = (numrows + 1 - parity) >> 1; - -@@ -907,12 +845,10 @@ void jpc_qmfb_join_colres(jpc_fix_t *a, int numrows, i - srcptr += numcols; - } - --#if !defined(HAVE_VLA) - /* If the join buffer was allocated on the heap, free this memory. */ - if (buf != joinbuf) { - jas_free(buf); - } --#endif - - } - Index: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t1enc_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t1enc_c diff -N graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t1enc_c --- graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t1enc_c 17 May 2008 09:32:16 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -$OpenBSD: patch-src_libjasper_jpc_jpc_t1enc_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/jpc/jpc_t1enc.c.orig Fri May 16 21:00:25 2008 -+++ src/libjasper/jpc/jpc_t1enc.c Fri May 16 21:11:52 2008 -@@ -219,7 +219,7 @@ int jpc_enc_enccblk(jpc_enc_t *enc, jas_stream_t *out, - - cblk->numpasses = (cblk->numbps > 0) ? (3 * cblk->numbps - 2) : 0; - if (cblk->numpasses > 0) { -- cblk->passes = jas_malloc(cblk->numpasses * sizeof(jpc_enc_pass_t)); -+ cblk->passes = jas_alloc2(cblk->numpasses, sizeof(jpc_enc_pass_t)); - assert(cblk->passes); - } else { - cblk->passes = 0; Index: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t2cod_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t2cod_c diff -N graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t2cod_c --- graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t2cod_c 17 May 2008 09:32:16 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -$OpenBSD: patch-src_libjasper_jpc_jpc_t2cod_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/jpc/jpc_t2cod.c.orig Fri May 16 21:00:25 2008 -+++ src/libjasper/jpc/jpc_t2cod.c Fri May 16 21:34:48 2008 -@@ -573,7 +573,7 @@ int jpc_pchglist_insert(jpc_pchglist_t *pchglist, int - } - if (pchglist->numpchgs >= pchglist->maxpchgs) { - newmaxpchgs = pchglist->maxpchgs + 128; -- if (!(newpchgs = jas_realloc(pchglist->pchgs, newmaxpchgs * sizeof(jpc_pchg_t *)))) { -+ if (!(newpchgs = jas_realloc2(pchglist->pchgs, newmaxpchgs, sizeof(jpc_pchg_t *)))) { - return -1; - } - pchglist->maxpchgs = newmaxpchgs; Index: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t2dec_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t2dec_c diff -N graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t2dec_c --- graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t2dec_c 17 May 2008 09:32:16 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,30 +0,0 @@ -$OpenBSD: patch-src_libjasper_jpc_jpc_t2dec_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/jpc/jpc_t2dec.c.orig Fri May 16 21:00:25 2008 -+++ src/libjasper/jpc/jpc_t2dec.c Fri May 16 21:10:00 2008 -@@ -478,7 +478,7 @@ jpc_pi_t *jpc_dec_pi_create(jpc_dec_t *dec, jpc_dec_ti - return 0; - } - pi->numcomps = dec->numcomps; -- if (!(pi->picomps = jas_malloc(pi->numcomps * sizeof(jpc_picomp_t)))) { -+ if (!(pi->picomps = jas_alloc2(pi->numcomps, sizeof(jpc_picomp_t)))) { - jpc_pi_destroy(pi); - return 0; - } -@@ -490,7 +490,7 @@ jpc_pi_t *jpc_dec_pi_create(jpc_dec_t *dec, jpc_dec_ti - for (compno = 0, tcomp = tile->tcomps, picomp = pi->picomps; - compno < pi->numcomps; ++compno, ++tcomp, ++picomp) { - picomp->numrlvls = tcomp->numrlvls; -- if (!(picomp->pirlvls = jas_malloc(picomp->numrlvls * -+ if (!(picomp->pirlvls = jas_alloc2(picomp->numrlvls, - sizeof(jpc_pirlvl_t)))) { - jpc_pi_destroy(pi); - return 0; -@@ -503,7 +503,7 @@ jpc_pi_t *jpc_dec_pi_create(jpc_dec_t *dec, jpc_dec_ti - rlvlno < picomp->numrlvls; ++rlvlno, ++pirlvl, ++rlvl) { - /* XXX sizeof(long) should be sizeof different type */ - pirlvl->numprcs = rlvl->numprcs; -- if (!(pirlvl->prclyrnos = jas_malloc(pirlvl->numprcs * -+ if (!(pirlvl->prclyrnos = jas_alloc2(pirlvl->numprcs, - sizeof(long)))) { - jpc_pi_destroy(pi); - return 0; Index: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t2enc_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t2enc_c diff -N graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t2enc_c --- graphics/jasper/patches/patch-src_libjasper_jpc_jpc_t2enc_c 17 May 2008 09:32:16 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,30 +0,0 @@ -$OpenBSD: patch-src_libjasper_jpc_jpc_t2enc_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/jpc/jpc_t2enc.c.orig Fri May 16 21:00:25 2008 -+++ src/libjasper/jpc/jpc_t2enc.c Fri May 16 21:12:44 2008 -@@ -565,7 +565,7 @@ jpc_pi_t *jpc_enc_pi_create(jpc_enc_cp_t *cp, jpc_enc_ - } - pi->pktno = -1; - pi->numcomps = cp->numcmpts; -- if (!(pi->picomps = jas_malloc(pi->numcomps * sizeof(jpc_picomp_t)))) { -+ if (!(pi->picomps = jas_alloc2(pi->numcomps, sizeof(jpc_picomp_t)))) { - jpc_pi_destroy(pi); - return 0; - } -@@ -577,7 +577,7 @@ jpc_pi_t *jpc_enc_pi_create(jpc_enc_cp_t *cp, jpc_enc_ - for (compno = 0, tcomp = tile->tcmpts, picomp = pi->picomps; - compno < pi->numcomps; ++compno, ++tcomp, ++picomp) { - picomp->numrlvls = tcomp->numrlvls; -- if (!(picomp->pirlvls = jas_malloc(picomp->numrlvls * -+ if (!(picomp->pirlvls = jas_alloc2(picomp->numrlvls, - sizeof(jpc_pirlvl_t)))) { - jpc_pi_destroy(pi); - return 0; -@@ -591,7 +591,7 @@ jpc_pi_t *jpc_enc_pi_create(jpc_enc_cp_t *cp, jpc_enc_ - /* XXX sizeof(long) should be sizeof different type */ - pirlvl->numprcs = rlvl->numprcs; - if (rlvl->numprcs) { -- if (!(pirlvl->prclyrnos = jas_malloc(pirlvl->numprcs * -+ if (!(pirlvl->prclyrnos = jas_alloc2(pirlvl->numprcs, - sizeof(long)))) { - jpc_pi_destroy(pi); - return 0; Index: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_tagtree_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_tagtree_c diff -N graphics/jasper/patches/patch-src_libjasper_jpc_jpc_tagtree_c --- graphics/jasper/patches/patch-src_libjasper_jpc_jpc_tagtree_c 17 May 2008 09:32:16 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -$OpenBSD: patch-src_libjasper_jpc_jpc_tagtree_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/jpc/jpc_tagtree.c.orig Fri May 16 21:00:25 2008 -+++ src/libjasper/jpc/jpc_tagtree.c Fri May 16 21:05:54 2008 -@@ -125,7 +125,7 @@ jpc_tagtree_t *jpc_tagtree_create(int numleafsh, int n - ++numlvls; - } while (n > 1); - -- if (!(tree->nodes_ = jas_malloc(tree->numnodes_ * sizeof(jpc_tagtreenode_t)))) { -+ if (!(tree->nodes_ = jas_alloc2(tree->numnodes_, sizeof(jpc_tagtreenode_t)))) { - return 0; - } - Index: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_util_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_jpc_jpc_util_c diff -N graphics/jasper/patches/patch-src_libjasper_jpc_jpc_util_c --- graphics/jasper/patches/patch-src_libjasper_jpc_jpc_util_c 17 May 2008 09:32:16 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -$OpenBSD: patch-src_libjasper_jpc_jpc_util_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/jpc/jpc_util.c.orig Fri May 16 21:00:25 2008 -+++ src/libjasper/jpc/jpc_util.c Fri May 16 21:09:30 2008 -@@ -109,7 +109,7 @@ int jpc_atoaf(char *s, int *numvalues, double **values - } - - if (n) { -- if (!(vs = jas_malloc(n * sizeof(double)))) { -+ if (!(vs = jas_alloc2(n, sizeof(double)))) { - return -1; - } - Index: graphics/jasper/patches/patch-src_libjasper_mif_mif_cod_c =================================================================== RCS file: graphics/jasper/patches/patch-src_libjasper_mif_mif_cod_c diff -N graphics/jasper/patches/patch-src_libjasper_mif_mif_cod_c --- graphics/jasper/patches/patch-src_libjasper_mif_mif_cod_c 17 May 2008 09:32:16 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,13 +0,0 @@ -$OpenBSD: patch-src_libjasper_mif_mif_cod_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/mif/mif_cod.c.orig Fri May 16 21:00:25 2008 -+++ src/libjasper/mif/mif_cod.c Fri May 16 21:26:40 2008 -@@ -438,8 +438,7 @@ static int mif_hdr_growcmpts(mif_hdr_t *hdr, int maxcm - int cmptno; - mif_cmpt_t **newcmpts; - assert(maxcmpts >= hdr->numcmpts); -- newcmpts = (!hdr->cmpts) ? jas_malloc(maxcmpts * sizeof(mif_cmpt_t *)) : -- jas_realloc(hdr->cmpts, maxcmpts * sizeof(mif_cmpt_t *)); -+ newcmpts = jas_realloc2(hdr->cmpts, maxcmpts, sizeof(mif_cmpt_t *)); - if (!newcmpts) { - return -1; - } Index: graphics/jasper/patches/patch-src_libjasper_pnm_pnm_enc_c =================================================================== RCS file: /cvs/ports/graphics/jasper/patches/patch-src_libjasper_pnm_pnm_enc_c,v retrieving revision 1.1 diff -u -p -r1.1 patch-src_libjasper_pnm_pnm_enc_c --- graphics/jasper/patches/patch-src_libjasper_pnm_pnm_enc_c 17 May 2008 09:32:16 -0000 1.1 +++ graphics/jasper/patches/patch-src_libjasper_pnm_pnm_enc_c 9 Dec 2017 12:12:35 -0000 @@ -1,7 +1,8 @@ $OpenBSD: patch-src_libjasper_pnm_pnm_enc_c,v 1.1 2008/05/17 09:32:16 espie Exp $ ---- src/libjasper/pnm/pnm_enc.c.orig Fri May 16 20:47:04 2008 -+++ src/libjasper/pnm/pnm_enc.c Fri May 16 20:47:21 2008 -@@ -374,7 +374,7 @@ static int pnm_putdata(jas_stream_t *out, pnm_hdr_t *h +Index: src/libjasper/pnm/pnm_enc.c +--- src/libjasper/pnm/pnm_enc.c.orig ++++ src/libjasper/pnm/pnm_enc.c +@@ -379,7 +379,7 @@ static int pnm_putdata(jas_stream_t *out, pnm_hdr_t *h } } } else { Index: graphics/jasper/pkg/PLIST =================================================================== RCS file: /cvs/ports/graphics/jasper/pkg/PLIST,v retrieving revision 1.4 diff -u -p -r1.4 PLIST --- graphics/jasper/pkg/PLIST 20 Apr 2013 15:25:35 -0000 1.4 +++ graphics/jasper/pkg/PLIST 6 Dec 2017 00:49:54 -0000 @@ -2,12 +2,11 @@ @bin bin/imgcmp @bin bin/imginfo @bin bin/jasper -@bin bin/tmrdemo include/jasper/ include/jasper/jas_cm.h include/jasper/jas_config.h -include/jasper/jas_config2.h include/jasper/jas_debug.h +include/jasper/jas_dll.h include/jasper/jas_fix.h include/jasper/jas_getopt.h include/jasper/jas_icc.h @@ -23,10 +22,12 @@ include/jasper/jas_tvp.h include/jasper/jas_types.h include/jasper/jas_version.h include/jasper/jasper.h -lib/libjasper.a -lib/libjasper.la @lib lib/libjasper.so.${LIBjasper_VERSION} +lib/pkgconfig/jasper.pc @man man/man1/imgcmp.1 @man man/man1/imginfo.1 @man man/man1/jasper.1 -@man man/man1/jiv.1 +share/doc/JasPer/ +share/doc/JasPer/README +share/doc/JasPer/jasper.pdf +share/doc/JasPer/jpeg2000.pdf -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE