[gs-cvs] rev 8853 - trunk/gs/src
ray at ghostscript.com
ray at ghostscript.com
Fri Jul 18 13:53:54 PDT 2008
Author: ray
Date: 2008-07-18 13:53:54 -0700 (Fri, 18 Jul 2008)
New Revision: 8853
Modified:
trunk/gs/src/gdevprn.c
Log:
Fix for Seg fault caused by wrap around of an unsigned long. Seen at 600 dpi
to pkmraw with Bug689369.pdf and -dBufferSpace=32000000.
DETAILS:
While the pdf14_trans_buffer_size was small enough, the mem_space calculation
would wrap around.
Modified: trunk/gs/src/gdevprn.c
===================================================================
--- trunk/gs/src/gdevprn.c 2008-07-18 13:59:05 UTC (rev 8852)
+++ trunk/gs/src/gdevprn.c 2008-07-18 20:53:54 UTC (rev 8853)
@@ -278,9 +278,9 @@
size_ok = ppdev->printer_procs.buf_procs.size_buf_device
(&buf_space, pdev, NULL, pdev->height, false) >= 0;
if (ppdev->page_uses_transparency) {
- if (new_height < max_ulong/(ESTIMATED_PDF14_ROW_SPACE(max(1, new_width)) >> 3))
- pdf14_trans_buffer_size = new_height
- * (ESTIMATED_PDF14_ROW_SPACE(new_width) >> 3);
+ 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)))
+ pdf14_trans_buffer_size *= new_height;
else {
size_ok = 0;
pdf14_trans_buffer_size = 0;
More information about the gs-cvs
mailing list