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 <jay@JIMI.CS.UNLV.EDU>


------- 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 <liug@mama.indstate.edu>
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 <liug@mama.indstate.edu>
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 <john@hubert.CS.UNLV.EDU>

>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 <rees@umich.edu>
To: John Kilburg <john@hubert.CS.UNLV.EDU>
Cc: Chimera Lovers <bug-chimera@cs.unlv.edu>
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 <rees@umich.edu>
cc: John Kilburg <john@hubert.cs.unlv.edu>, 
    Chimera Lovers <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 17:20:22 EST."
Date: Fri, 01 Nov 1996 16:19:51 -0800
From: Allen Condit <condit@ry.ISRI.UNLV.EDU>

>  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 <smarry@sneep.dataparc.com>
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
http://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 <smarry@sneep.dataparc.com>
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:

http://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 <smarry@sneep.dataparc.com>
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 <nino@djttd.com>
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: <m0vNNOs-000VWYC@gaupc01.vancpower.com>
From: "Vance W. Petree" <vpetree@vancpower.com>
Subject: subscribe
To: chimera-announce@cs.unlv.edu
Date: Tue, 12 Nov 1996 13:17:30 -0500 (EST)
Cc: "Vance W. Petree" <vpetree@vancpower.com>
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

