[gs-cvs] rev 8867 - trunk/gs/src

ray at ghostscript.com ray at ghostscript.com
Wed Jul 23 15:52:50 PDT 2008


Author: ray
Date: 2008-07-23 15:52:50 -0700 (Wed, 23 Jul 2008)
New Revision: 8867

Modified:
   trunk/gs/src/gdevprn.c
Log:
Fix possible use of uninitialized variable 'mem_space'. Compute the value
when no-transparency is in effect prior to adding in the space needed for
transparency. Thanks to Michael Vrhel for spotting this.


Modified: trunk/gs/src/gdevprn.c
===================================================================
--- trunk/gs/src/gdevprn.c	2008-07-23 21:55:21 UTC (rev 8866)
+++ trunk/gs/src/gdevprn.c	2008-07-23 22:52:50 UTC (rev 8867)
@@ -279,17 +279,16 @@
 	memset(ppdev->skip, 0, sizeof(ppdev->skip));
 	size_ok = ppdev->printer_procs.buf_procs.size_buf_device
 	    (&buf_space, pdev, NULL, pdev->height, false) >= 0;
+	mem_space = buf_space.bits + buf_space.line_ptrs;
 	if (ppdev->page_uses_transparency) {
 	    pdf14_trans_buffer_size = (ESTIMATED_PDF14_ROW_SPACE(max(1, new_width)) >> 3);
-	    if (new_height < max_ulong/(mem_space + (new_height * pdf14_trans_buffer_size)))
+	    if (new_height < max_ulong/(mem_space + (new_height * pdf14_trans_buffer_size))) {
 		pdf14_trans_buffer_size *= new_height;
-	    else {
+		mem_space += pdf14_trans_buffer_size;
+	    } else {
 		size_ok = 0;
-		pdf14_trans_buffer_size = 0;
 	    }
 	}
-	mem_space = buf_space.bits + buf_space.line_ptrs
-		    + pdf14_trans_buffer_size;
 
 	/* Compute desired space params: never use the space_params as-is. */
 	/* Rather, give the dev-specific driver a chance to adjust them. */



More information about the gs-cvs mailing list