Received: from jimi.CS.UNLV.EDU by JIMI.CS.UNLV.EDU id aa02249; 26 Dec 96 23:32 PST To: jay@JIMI.CS.UNLV.EDU Subject: bug-chimera nov 96 Date: Thu, 26 Dec 1996 23:32:31 -0800 From: Jay Nietling ------- Forwarded Messages Received: from mama.indstate.edu by JIMI.CS.UNLV.EDU id aa21239; 1 Nov 96 5:02 PST Received: (from liug@localhost) by mama.indstate.edu (8.7.5/8.7.3) id IAA17366; Fri, 1 Nov 1996 08:02:49 -0500 Date: Fri, 1 Nov 1996 08:02:49 -0500 From: frank Message-Id: <199611011302.IAA17366@mama.indstate.edu> To: beebe@math.utah.edu, bug-chimera@cs.unlv.edu Subject: Re: Building chimera-1.65 on DEC Alpha OSF/1 3.2: a small workaround Is chimera development stopped? Haven't seen any official announcement for a long time. Frank ------- Message 2 Received: from hubert.CS.UNLV.EDU by JIMI.CS.UNLV.EDU id aa29576; 1 Nov 96 13:34 PST To: frank cc: beebe@math.utah.edu, bug-chimera@cs.unlv.edu Subject: Re: Building chimera-1.65 on DEC Alpha OSF/1 3.2: a small workaround In-reply-to: Your message of "Fri, 01 Nov 1996 08:02:49 EST." <199611011302.IAA17366@mama.indstate.edu> Date: Fri, 01 Nov 1996 13:34:22 -0800 From: John Kilburg >Is chimera development stopped? >Haven't seen any official announcement for a long time. > >Frank It hasn't stopped but it is slow. I've worked on it very recently. Sorry about the long wait. -john ------- Message 3 Received: from citi.umich.edu by JIMI.CS.UNLV.EDU id aa00867; 1 Nov 96 14:21 PST Received: from citi.umich.edu by citi.umich.edu for john@hubert.CS.UNLV.EDU bug-chimera@cs.unlv.edu with SMTP; Fri, 01 Nov 96 17:20:22 -0500 From: Jim Rees To: John Kilburg Cc: Chimera Lovers Date: Fri, 01 Nov 1996 17:20:22 -0500 Subject: Re: Building chimera-1.65 on DEC Alpha OSF/1 3.2: a small workaround Sender: rees@citi.umich.edu In-Reply-To: John Kilburg, Fri, 01 Nov 1996 13:34:22 PST It hasn't stopped but it is slow. I've worked on it very recently. Tables! Tables! Give me tables or give me death! ------- Message 4 Received: from ry.ISRI.UNLV.EDU by JIMI.CS.UNLV.EDU id aa03492; 1 Nov 96 16:19 PST To: Jim Rees cc: John Kilburg , Chimera Lovers Subject: Re: Building chimera-1.65 on DEC Alpha OSF/1 3.2: a small workaround In-reply-to: Your message of "Fri, 01 Nov 1996 17:20:22 EST." Date: Fri, 01 Nov 1996 16:19:51 -0800 From: Allen Condit > It hasn't stopped but it is slow. I've worked on it very recently. > >Tables! Tables! Give me tables or give me death! certain folks around unlv engineering have been beating on john about this off and on for a VERY long time. allen ------- Message 5 Received: from sneep.dataparc.com by JIMI.CS.UNLV.EDU id aa19874; 3 Nov 96 0:28 PST Received: (from smarry@localhost) by sneep.dataparc.com (8.6.12/8.6.9) id DAA20311 for bug-chimera@cs.unlv.edu; Sun, 3 Nov 1996 03:28:00 -0500 Date: Sun, 3 Nov 1996 03:28:00 -0500 From: Smarasderagd Message-Id: <199611030828.DAA20311@sneep.dataparc.com> To: bug-chimera@cs.unlv.edu Subject: GIF extension bug fix for cfh108-2.0 The GIF decoder in cfh108 doesn't handle multi-block extensions properly, which sometimes leads to crashing due to its trying to process what it thinks is an image when it's actually some random data within an extension. The following patch fixes this (without, I hope, introducing other bugs) and has been rolled into https://pantransit.smar.reptiles.org/prog/cfh108.patch.gz. - --- gif.c.old Sat Nov 2 19:24:30 1996 +++ gif.c Sat Nov 2 19:24:27 1996 @@ -207,13 +207,12 @@ } if (gs->buf[0] & 0x1) gs->transparent = gs->buf[3]; } - - else + + while ((rval = gs_read_data_block(gs)) == GS_SUCCESS && gs->buf_cnt != 0); + if (rval != GS_SUCCESS) { - - if ((rval = gs_read_data_block(gs)) != GS_SUCCESS) - - { - - gs->pos = pos; - - return(rval); - - } + gs->pos = pos; + return(rval); } return(GS_SUCCESS); ------- Message 6 Received: from sneep.dataparc.com by JIMI.CS.UNLV.EDU id aa21146; 3 Nov 96 3:58 PST Received: (from smarry@localhost) by sneep.dataparc.com (8.6.12/8.6.9) id GAA20497 for bug-chimera@cs.unlv.edu; Sun, 3 Nov 1996 06:58:16 -0500 Date: Sun, 3 Nov 1996 06:58:16 -0500 From: Smarasderagd Message-Id: <199611031158.GAA20497@sneep.dataparc.com> To: bug-chimera@cs.unlv.edu Subject: chimera GIF crash repro Erik Corry asked for a URL which demonstrates the bug I sent a patch for. Here it is: https://world.std.com/~jegan/cat.gif I don't have the original version handy, but as I recall it ran into a GIF separator (a comma) in the middle of a comment in the above image and tried to create an enormous image, something like 25000 x 25000, which I imagine caused a malloc() failure, probably in newRGBImage. The image code really should check the return value of malloc(), so I guess there's another patch in cfh108's future.. ------- Message 7 Received: from sneep.dataparc.com by JIMI.CS.UNLV.EDU id aa29527; 5 Nov 96 0:44 PST Received: (from smarry@localhost) by sneep.dataparc.com (8.6.12/8.6.9) id DAA27271 for bug-chimera@cs.unlv.edu; Tue, 5 Nov 1996 03:44:47 -0500 Date: Tue, 5 Nov 1996 03:44:47 -0500 From: Smarasderagd Message-Id: <199611050844.DAA27271@sneep.dataparc.com> To: bug-chimera@cs.unlv.edu Subject: image allocation checking patch for cfh108 In my last message I mentioned a patch to have the image code check that images were allocated successfully. Here it is. - --- 1.2 1996/11/05 07:28:50 +++ gif.c 1996/11/05 07:28:13 @@ -357,6 +357,8 @@ if (gs->l_cmap_flag) { image = newRGBImage(gs->img_width, gs->img_height, gs->l_pixel_bits); + if (!image) return(GS_ERR_NOMEM); + image->rgb.red = gs->l_cmap[GIF_RED]; image->rgb.green = gs->l_cmap[GIF_GRN]; image->rgb.blue = gs->l_cmap[GIF_BLU]; @@ -365,6 +367,8 @@ else { image = newRGBImage(gs->img_width, gs->img_height, gs->g_pixel_bits); + if (!image) return(GS_ERR_NOMEM); + image->rgb.red = gs->g_cmap[GIF_RED]; image->rgb.green = gs->g_cmap[GIF_GRN]; image->rgb.blue = gs->g_cmap[GIF_BLU]; - --- 1.1 1996/11/05 07:26:36 +++ gifp.h 1996/11/05 07:27:26 @@ -105,6 +105,7 @@ #define GS_ERR_NFO -8 /* no file open */ #define GS_ERR_NIO -9 /* no image open */ #define GS_ERR_BAD_STATE -10 /* bad state */ +#define GS_ERR_NOMEM -11 /* allocation failure */ /* * colormap indices - --- 1.1 1996/11/05 07:56:08 +++ jpeg.c 1996/11/05 07:56:25 @@ -162,6 +162,9 @@ int i; jpeg->image = newRGBImage(jpeg->cinfo.output_width, jpeg->cinfo.output_height, 8); + if (!jpeg->image) + return CH_JPEG_ERROR; + jpeg->image->type = IGRAY; jpeg->image->rgb.red = jpeg->cmap; jpeg->image->rgb.green = jpeg->cmap; @@ -174,6 +177,8 @@ { jpeg->image = newTrueImage(jpeg->cinfo.output_width, jpeg->cinfo.output_height); + if (!jpeg->image) + return CH_JPEG_ERROR; } /* - --- 1.1 1996/11/05 07:13:27 +++ new.c 1996/11/05 07:19:27 @@ -25,6 +25,8 @@ Image *image; image = (Image *)alloc_mem(sizeof(Image)); + if (!image) return((Image *) 0); + memset(image, 0, sizeof(Image)); image->type = IBITMAP; image->width = width; @@ -37,11 +39,17 @@ /* round bytes_per_line up to nearest longword */ image->bytes_per_line = ((image->bytes_per_line - 1) / sizeof(long)) + 1; image->bytes_per_line *= sizeof(long); + image->transparent = -1; /* Allocate a little too much memory, to allow overread */ datasize = image->bytes_per_line * height + 32; image->data = (byte *)alloc_mem(datasize); + if (!image->data) + { + free_mem((char *)image); + return((Image *)0); + } + memset(image->data, 0, datasize); - - image->transparent = -1; return(image); } @@ -57,7 +65,7 @@ if(depth == 1) { image = newBitImage(width, height); - - image->type = IRGB; + if (image) image->type = IRGB; return image; } @@ -67,6 +75,8 @@ if (pixlen == 0) pixlen = 1; image = (Image *)alloc_mem(sizeof(Image)); + if (!image) return((Image *)0); + memset(image, 0, sizeof(Image)); image->type = IRGB; image->width = width; @@ -81,6 +91,12 @@ /* Allocate a little too much memory, to allow overread */ datasize = image->bytes_per_line * height + 32; image->data = (byte *)alloc_mem(datasize); + if (!image->data) + { + free_mem((char *)image); + return((Image *)0); + } + memset(image->data, 0, datasize); image->rgb.used = 0; @@ -100,6 +116,8 @@ unsigned long datasize; image = (Image *)alloc_mem(sizeof(Image)); + if (!image) return((Image *) 0); + memset(image, 0, sizeof(Image)); image->type = ITRUE; image->width = width; @@ -114,6 +132,12 @@ /* Allocate a little too much memory, to allow overread */ datasize = image->bytes_per_line * height + 32; image->data = (byte *)alloc_mem(datasize); + if (!image->data) + { + free_mem((char *)image); + return ((Image *)0); + } + memset(image->data, 0, datasize); image->rgb.used = 0; - --- 1.1 1996/11/05 08:05:15 +++ png.c 1996/11/05 08:05:26 @@ -92,11 +92,21 @@ /* allocate the memory to hold the image using the fields of png_info. */ if (PNG_COLOR_TYPE_GRAY == info->color_type && 1 == info->bit_depth) { png->image = newBitImage(info->width, info->height); + if (!png->image) { + png->done = image_error; + return; + } + png_set_invert_mono(state); } else if (PNG_COLOR_TYPE_PALETTE == info->color_type) { int i; png->image = newRGBImage(info->width, info->height, info->bit_depth); + if (!png->image) { + png->done = image_error; + return; + } + png->image->rgb.red = png->cmap[0]; png->image->rgb.green = png->cmap[1]; png->image->rgb.blue = png->cmap[2]; @@ -122,6 +132,11 @@ int maxval = (1 << depth) - 1; png->image = newRGBImage(info->width, info->height, depth); + if (!png->image) { + png->done = image_error; + return; + } + /* png->image->type = IGRAY; */ png->image->rgb.red = png->cmap[0]; png->image->rgb.green = png->cmap[1]; @@ -137,6 +152,11 @@ png->image->transparent = info->trans_values.gray; } else { png->image = newTrueImage(info->width, info->height); + if (!png->image) { + png->done = image_error; + return; + } + } if (info->valid & PNG_INFO_gAMA && png->image->type != IBITMAP) @@ -157,6 +177,9 @@ return; png = (pngState *) png_get_progressive_ptr(state); + if (!png->image) + return; + old_row = png->image->data + png->image->bytes_per_line * row_num; png_progressive_combine_row(state, old_row, new_row); - --- 1.1 1996/11/05 08:07:57 +++ pnm.c 1996/11/05 08:08:09 @@ -218,6 +218,7 @@ case 1: case 4: pnm->image = newBitImage(pnm->width, height); + if (!pnm->image) return PNM_ERROR; pnm->imagepos = pnm->image->data; if(pnm->pnm_class == 1) pnm->state = PNM_READ_ASC_BIT; else pnm->state = PNM_READ_PRE_RAW_NEWLINE; @@ -236,6 +237,7 @@ case 2: case 5: pnm->image = newRGBImage(pnm->width, height, 8); + if (!pnm->image) return PNM_ERROR; pnm->imagepos = pnm->image->data; pnm->image->type = IGRAY; pnm->image->rgb.red = pnm->cmap[0]; @@ -252,6 +254,7 @@ case 3: case 6: pnm->image = newTrueImage(pnm->width, height); + if (!pnm->image) return PNM_ERROR; pnm->imagepos = pnm->image->data; pnm->state = PNM_READ_MAX_VAL; break; - --- 1.2 1996/11/05 08:09:56 +++ xbm.c 1996/11/05 08:10:32 @@ -190,6 +190,7 @@ */ xbm->image = newBitImage(width, height); + if (!xbm->image) return XBM_ERROR; xbm->imagepos = xbm->image->data; return XBM_SUCCESS; ------- Message 8 Received: from INGATE.DJTTD.COM by JIMI.CS.UNLV.EDU id aa15694; 5 Nov 96 17:17 PST Received: from laptop3.djttd.com (ingate.djttd.com) by ingate.djttd.com with SMTP (1.39.111.2/16.2) id AA006446436; Tue, 5 Nov 1996 15:40:36 -0500 Message-Id: <327FB38C.6D19@djttd.com> Date: Tue, 05 Nov 1996 15:37:16 -0600 From: Rosendo Bonilla X-Mailer: Mozilla 2.0 (Win95; I) Mime-Version: 1.0 To: bug-chimera@cs.unlv.edu Subject: (no subject) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit unsubscribe bug-chimera ------- Message 9 Received: from jimi.CS.UNLV.EDU by JIMI.CS.UNLV.EDU id aa12686; 12 Nov 96 10:35 PST Received: from lucy.infi.net by JIMI.CS.UNLV.EDU id aa12660; 12 Nov 96 10:30 PST Received: by mailhost2.infi.net (Infinet-U-3.3) id NAA16613; Tue, 12 Nov 1996 13:30:50 -0500 (EST) Received: from gaupc01.vancpower.com by gaamc3.vancpower.com with smtp (Smail3.1.29.1 #3) id m0vNNOz-00084nC; Tue, 12 Nov 96 13:17 EST Received: by gaupc01.vancpower.com (Smail3.1.29.1 #3) id m0vNNOs-000VWYC; Tue, 12 Nov 96 13:17 EST Message-Id: From: "Vance W. Petree" Subject: subscribe To: chimera-announce@cs.unlv.edu Date: Tue, 12 Nov 1996 13:17:30 -0500 (EST) Cc: "Vance W. Petree" X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII subscribe - -- ========================================================================= vpetree@vancpower.com (804)257-4612 (804)257-4750 (fax) ------- End of Forwarded Messages