Re: [JunkMail] Bug 686991 Memory leak in CET test file 12-07.ps

"Igor V. Melichev" <[email protected]>
Newsgroups gmane.comp.printing.ghostscript.patches
Message-ID <[email protected]>
Fine with me.

Igor.

----- Original Message ----- 
From: "Dan Coby" <[email protected]>
To: "Gs-Code-Review" <[email protected]>
Sent: Sunday, August 10, 2003 9:38 AM
Subject: [JunkMail] [gs-code-review] Bug 686991 Memory leak in CET test file
12-07.ps


>
> Fix for Bug 686991  Memory leak in CET test file 12-07.ps.
>
> DETAILS:
>
> A pointer to a free object was found while running the CET with the
> memory allocation test switches (-Z@?$).  The free object was a color
> space and the pointer was inside a gs_image_enum_common structure.
>
> The situation occurs when an error is found in the data source for
> for an image.   The actual cause was that the image enum common
> structure should have also been released.
>
> Note:  The data source checking is the only place that has this
> problem.  After the data source checking, the image enum common
> structure pointer is placed into an image enum structure.  Errors
> that are detected after that point call gx_image_cleanup which
> handles all of the data in the image enum structure including the
> image enum common structure.
>
>
> Fix:
>
> Index: src/zimage.c
> ===================================================================
> RCS file: /cvs/ghostscript/gs/src/zimage.c,v
> retrieving revision 1.11
> diff -c -5 -r1.11 zimage.c
> *** src/zimage.c 20 Jun 2003 11:23:48 -0000 1.11
> --- src/zimage.c 10 Aug 2003 05:21:08 -0000
> ***************
> *** 275,291 ****
>       break;
>   }
>   }
>   /* falls through */
>       case t_string:
> ! if (r_type(pp) != r_type(sources))
>       return_error(e_typecheck);
>   check_read(*pp);
>   break;
>       default:
> ! if (!r_is_proc(sources))
>       return_error(e_typecheck);
>   check_proc(*pp);
>   }
>   *ep = *pp;
>       }
>       if ((penum = gs_image_enum_alloc(imemory, "image_setup")) == 0)
> --- 275,297 ----
>       break;
>   }
>   }
>   /* falls through */
>       case t_string:
> ! if (r_type(pp) != r_type(sources)) {
> !         if (pie != NULL)
> !         gx_image_end(pie, false);    /* Clean up pie */
>       return_error(e_typecheck);
> + }
>   check_read(*pp);
>   break;
>       default:
> ! if (!r_is_proc(sources)) {
> !         if (pie != NULL)
> !         gx_image_end(pie, false);    /* Clean up pie */
>       return_error(e_typecheck);
> + }
>   check_proc(*pp);
>   }
> _______________________________________________
> gs-code-review mailing list
> [email protected]
> http://www.ghostscript.com/mailman/listinfo/gs-code-review
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.