[gs-commits] ghostpdl branch, master, updated. jbig2dec-0.14-1810-gb25cad4

[email protected] (Julian Smith) Tue, 5 Nov 2019 12:20:26 +0000 (UTC)
Newsgroups gmane.comp.printing.ghostscript.cvs
Message-ID <[email protected]>
The ghostpdl branch, master has been updated
       via  b25cad42dc869e8e9d7ea58adae2c8baba0ee25d (commit)
      from  e7118494be4162b8c2c06d8b7d4cb2d7ebb57f61 (commit)

----------------------------------------------------------------------
commit b25cad42dc869e8e9d7ea58adae2c8baba0ee25d
Author: Julian Smith <[email protected]>
Date:   Tue Nov 5 12:03:23 2019 +0000

    Bug 701830: avoid buffer overflow in lips_rle_encode().
    
    Worst case for lips_rle_encode() is 2*Length+2, so adjust corresponding alloc
    to match.
    
    Fixes:
        ./sanbin/gs -dBATCH -dNOPAUSE -r489 -dFitPage -sOutputFile=tmp -sDEVICE=lips4 ../bug-701830.eps

diff --git a/contrib/lips4/gdevl4r.c b/contrib/lips4/gdevl4r.c
index 9af084f..05f1f81 100644
--- a/contrib/lips4/gdevl4r.c
+++ b/contrib/lips4/gdevl4r.c
@@ -645,7 +645,10 @@ lips4type_print_page_copies(gx_device_printer * pdev, gp_file * prn_stream, int
       {
         if (!(lprn->CompBuf = gs_malloc(pdev->memory->non_gc_memory, bpl * 3 / 2 + 1, maxY, "(CompBuf)")))
           return_error(gs_error_VMerror);
-        if (!(lprn->CompBuf2 = gs_malloc(pdev->memory->non_gc_memory, bpl * 3 / 2 + 1, maxY, "(CompBuf2)")))
+        
+        /* This buffer is used by lips_rle_encode(), which can require double
+        input size plus 2 bytes. */
+        if (!(lprn->CompBuf2 = gs_malloc(pdev->memory->non_gc_memory, bpl * 2 + 2, maxY, "(CompBuf2)")))
           return_error(gs_error_VMerror);
 
         if (lprn->NegativePrint) {


Summary of changes:
 contrib/lips4/gdevl4r.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)