Merge cherrypicks of [13091166, 13091167, 13091317, 13090992, 13091168, 13091169, 13090993, 13090994, 13090949, 13090950, 13090951, 13090952, 13091170, 13091171, 13090953, 13091129, 13091130, 13091178, 13091179, 13091180, 13091181, 13091182, 13091183, 13091184, 13091185, 13091186, 13091187, 13090954, 13090995, 13091336, 13091172, 13091131, 13091132, 13091318, 13091319, 13091320, 13091188, 13091189, 13091173, 13091190, 13091174, 13091175, 13091191, 13091192, 13091193, 13091356, 13091357, 13091358, 13090782] into rvc-qpr1-c-release
Change-Id: Ie2cc3e48eb7550ec0a7f852fcffdddd7096a6195
diff --git a/src/sfnt/pngshim.c b/src/sfnt/pngshim.c
index ca85d97..15f4e16 100644
--- a/src/sfnt/pngshim.c
+++ b/src/sfnt/pngshim.c
@@ -327,6 +327,13 @@
if ( populate_map_and_metrics )
{
+ /* reject too large bitmaps similarly to the rasterizer */
+ if ( imgHeight > 0x7FFF || imgWidth > 0x7FFF )
+ {
+ error = FT_THROW( Array_Too_Large );
+ goto DestroyExit;
+ }
+
metrics->width = (FT_UShort)imgWidth;
metrics->height = (FT_UShort)imgHeight;
@@ -335,13 +342,6 @@
map->pixel_mode = FT_PIXEL_MODE_BGRA;
map->pitch = (int)( map->width * 4 );
map->num_grays = 256;
-
- /* reject too large bitmaps similarly to the rasterizer */
- if ( map->rows > 0x7FFF || map->width > 0x7FFF )
- {
- error = FT_THROW( Array_Too_Large );
- goto DestroyExit;
- }
}
/* convert palette/gray image to rgb */