freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2-demos] master 532591d: [ftgrid] Fix out-of-array memory acces


From: Werner LEMBERG
Subject: [freetype2-demos] master 532591d: [ftgrid] Fix out-of-array memory access.
Date: Wed, 19 Apr 2017 05:37:13 -0400 (EDT)

branch: master
commit 532591d5ab33beab5527912c89b1bfdc0eacefb6
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>

    [ftgrid] Fix out-of-array memory access.
    
    * src/ftgrid.c (bitmap_scale) [gr_pixel_mode_lcd]: We handle input
    pixel by pixel, not the full line; consequently, we have to use
    `width', not `pitch'.
---
 ChangeLog    | 8 ++++++++
 src/ftgrid.c | 4 +++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index fefcd3b..0be1359 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2014-04-19  Werner Lemberg  <address@hidden>
+
+       [ftgrid] Fix out-of-array memory access.
+
+       * src/ftgrid.c (bitmap_scale) [gr_pixel_mode_lcd]: We handle input
+       pixel by pixel, not the full line; consequently, we have to use
+       `width', not `pitch'.
+
 2017-04-17  Alexei Podtelezhnikov  <address@hidden>
 
        * src/ftview.c (write_header): Report fractional ppem differently.
diff --git a/src/ftgrid.c b/src/ftgrid.c
index c722484..565da46 100644
--- a/src/ftgrid.c
+++ b/src/ftgrid.c
@@ -541,10 +541,12 @@
     unsigned char*  t;
     unsigned char*  line;
     int             pitch;
+    int             width;
     int             i, j, k;
 
     pitch = bit->pitch > 0 ?  bit->pitch
                            : -bit->pitch;
+    width = bit->width;
 
     t = (unsigned char*)malloc( (size_t)( pitch * bit->rows *
                                           scale * scale ) );
@@ -586,7 +588,7 @@
       case gr_pixel_mode_lcd2:
         for ( i = 0; i < bit->rows; i++ )
         {
-          for ( j = 0; j < pitch; j += 3 )
+          for ( j = 0; j < width; j += 3 )
             for ( k = 0; k < scale; k++ )
             {
               line[j * scale + 3 * k    ] = s[i * pitch + j    ];



reply via email to

[Prev in Thread] Current Thread [Next in Thread]