[gs-cvs] rev 8298 - in trunk/gs/jasper/src/libjasper: jp2 jpc
giles at ghostscript.com
giles at ghostscript.com
Wed Oct 17 16:04:52 PDT 2007
Author: giles
Date: 2007-10-17 16:04:50 -0700 (Wed, 17 Oct 2007)
New Revision: 8298
Modified:
trunk/gs/jasper/src/libjasper/jp2/jp2_cod.c
trunk/gs/jasper/src/libjasper/jpc/jpc_cs.c
trunk/gs/jasper/src/libjasper/jpc/jpc_dec.c
Log:
Avoid memory corruption with broken files.
Patch from the Ubuntu libjasper package.
Modified: trunk/gs/jasper/src/libjasper/jp2/jp2_cod.c
===================================================================
--- trunk/gs/jasper/src/libjasper/jp2/jp2_cod.c 2007-10-17 18:27:58 UTC (rev 8297)
+++ trunk/gs/jasper/src/libjasper/jp2/jp2_cod.c 2007-10-17 23:04:50 UTC (rev 8298)
@@ -247,7 +247,7 @@
box = 0;
tmpstream = 0;
- if (!(box = jas_malloc(sizeof(jp2_box_t)))) {
+ if (!(box = jas_calloc(1, sizeof(jp2_box_t)))) {
goto error;
}
box->ops = &jp2_boxinfo_unk.ops;
Modified: trunk/gs/jasper/src/libjasper/jpc/jpc_cs.c
===================================================================
--- trunk/gs/jasper/src/libjasper/jpc/jpc_cs.c 2007-10-17 18:27:58 UTC (rev 8297)
+++ trunk/gs/jasper/src/libjasper/jpc/jpc_cs.c 2007-10-17 23:04:50 UTC (rev 8298)
@@ -991,7 +991,10 @@
compparms->numstepsizes = (len - n) / 2;
break;
}
-if (compparms->numstepsizes > 0) {
+if (compparms->numstepsizes > 3 * JPC_MAXRLVLS + 1) {
+ jpc_qcx_destroycompparms(compparms);
+ return -1;
+ } else if (compparms->numstepsizes > 0) {
compparms->stepsizes = jas_malloc(compparms->numstepsizes *
sizeof(uint_fast32_t));
assert(compparms->stepsizes);
Modified: trunk/gs/jasper/src/libjasper/jpc/jpc_dec.c
===================================================================
--- trunk/gs/jasper/src/libjasper/jpc/jpc_dec.c 2007-10-17 18:27:58 UTC (rev 8297)
+++ trunk/gs/jasper/src/libjasper/jpc/jpc_dec.c 2007-10-17 23:04:50 UTC (rev 8298)
@@ -1219,7 +1219,7 @@
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_calloc(dec->numtiles, sizeof(jpc_dec_tile_t)))) {
return -1;
}
@@ -1243,7 +1243,7 @@
tile->pkthdrstreampos = 0;
tile->pptstab = 0;
tile->cp = 0;
- if (!(tile->tcomps = jas_malloc(dec->numcomps *
+ if (!(tile->tcomps = jas_calloc(dec->numcomps,
sizeof(jpc_dec_tcomp_t)))) {
return -1;
}
More information about the gs-cvs
mailing list