[gs-commits] ghostpdl branch, master, updated. jbig2dec-0.14-1799-ga6f7464
[email protected] (Julian Smith) Mon, 4 Nov 2019 14:36:41 +0000 (UTC)
| Newsgroups | gmane.comp.printing.ghostscript.cvs |
|---|---|
| Message-ID | <[email protected]> |
The ghostpdl branch, master has been updated
via a6f7464dddc689386668a38b92dfd03cc1b38a10 (commit)
from 2793769ff107d8d22dadd30c6e68cd781b569550 (commit)
----------------------------------------------------------------------
commit a6f7464dddc689386668a38b92dfd03cc1b38a10
Author: Julian Smith <[email protected]>
Date: Mon Nov 4 13:00:04 2019 +0000
Bug 701827: fixed incorrect buffer expansion in lxm5700m_print_page().
Fixes:
./sanbin/gs -dBATCH -dNOPAUSE -r425 -dFitPage -sOutputFile=tmp -sDEVICE=lxm5700m ../bug-701827.eps
diff --git a/devices/gdevlxm.c b/devices/gdevlxm.c
index f3135dc..ec350ee 100644
--- a/devices/gdevlxm.c
+++ b/devices/gdevlxm.c
@@ -245,13 +245,21 @@ quit_ignomiously: /* and a goto into an if statement is pretty ignomious! */
outp = swipeBuf;
/* macro, not fcn call. Space penalty is modest, speed helps */
-#define buffer_store(x) if(outp-swipeBuf>=swipeBuf_size) {\
- gs_free(pdev->memory, (char *)swipeBuf, swipeBuf_size, 1, "lxm_print_page(swipeBuf)");\
- swipeBuf_size*=2;\
- swipeBuf = (byte *)gs_malloc(pdev->memory, swipeBuf_size, 1, "lxm_print_page(swipeBuf)");\
- if (swipeBuf == 0) goto quit_ignomiously;\
- break;}\
- else *outp++ = (x)
+#define buffer_store(x)\
+ {\
+ if (outp-swipeBuf>=swipeBuf_size) {\
+ size_t outp_offset = outp - swipeBuf;\
+ size_t swipeBuf_size_new = swipeBuf_size * 2;\
+ byte* swipeBuf_new = gs_malloc(pdev->memory, swipeBuf_size_new, 1, "lxm_print_page(swipeBuf_new)");\
+ if (!swipeBuf_new) goto quit_ignomiously;\
+ memcpy(swipeBuf_new, swipeBuf, swipeBuf_size);\
+ gs_free(pdev->memory, swipeBuf, swipeBuf_size, 1, "lxm_print_page(swipeBuf)");\
+ swipeBuf_size = swipeBuf_size_new;\
+ swipeBuf = swipeBuf_new;\
+ outp = swipeBuf + outp_offset;\
+ }\
+ *outp++ = (x);\
+ }
{/* work out the bytes to store for this swipe*/
Summary of changes:
devices/gdevlxm.c | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)