Commit 4166c453601e856fa61e8994085f240d8771e980

Werner Lemberg 2019-04-23T06:49:56

[base] Fix thinko in previous commit. * src/base/ftbitmap.c (FT_Bitmap_Blend): Check final width, not target pitch. Problem reported by Sender Ghost <lightside@gmx.com>.

diff --git a/ChangeLog b/ChangeLog
index 78b82c9..92a2556 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2019-04-23  Werner Lemberg  <wl@gnu.org>
+
+	[base] Fix thinko in previous commit.
+
+	* src/base/ftbitmap.c (FT_Bitmap_Blend): Check final width, not
+	target pitch.
+
+	Problem reported by Sender Ghost <lightside@gmx.com>.
+
 2019-04-22  Werner Lemberg  <wl@gnu.org>
 
 	* src/base/ftbitmap.c (FT_Bitmap_Blend): Check target pitch.
diff --git a/src/base/ftbitmap.c b/src/base/ftbitmap.c
index 7e5e92d..0e0a76f 100644
--- a/src/base/ftbitmap.c
+++ b/src/base/ftbitmap.c
@@ -922,12 +922,18 @@
     else
       FT_TRACE5(( "  target bitmap: empty\n" ));
 
-    FT_TRACE5(( "  final bitmap: (%d, %d) -- (%d, %d); %d x %d\n",
-      final_llx / 64, final_lly / 64,
-      final_urx / 64, final_ury / 64,
-      final_width, final_rows ));
+    if ( final_width && final_rows )
+      FT_TRACE5(( "  final bitmap: (%d, %d) -- (%d, %d); %d x %d\n",
+        final_llx / 64, final_lly / 64,
+        final_urx / 64, final_ury / 64,
+        final_width, final_rows ));
+    else
+      FT_TRACE5(( "  final bitmap: empty\n" ));
 #endif /* FT_DEBUG_LEVEL_TRACE */
 
+    if ( !( final_width && final_rows ) )
+      return FT_Err_Ok;               /* nothing to do */
+
     /* for blending, set offset vector of final bitmap */
     /* temporarily to (0,0)                            */
     source_llx -= final_llx;
@@ -971,12 +977,6 @@
 
 
       pitch = target->pitch;
-      if ( !pitch )
-      {
-        FT_TRACE5(( "FT_Blend_Bitmap:"
-                    " zero target bitmap pitch is invalid\n" ));
-        return FT_THROW( Invalid_Argument );
-      }
 
       if ( pitch < 0 )
         pitch = -pitch;