[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] master c7fa00bf4 2/2: [raster] Fix pool overflow checking.
From: |
Werner Lemberg |
Subject: |
[freetype2] master c7fa00bf4 2/2: [raster] Fix pool overflow checking. |
Date: |
Fri, 13 Oct 2023 00:22:15 -0400 (EDT) |
branch: master
commit c7fa00bf4e52be81c41226b1b511825736d02bef
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>
[raster] Fix pool overflow checking.
* src/raster/ftraster.c (New_Profile, End_Profile): Check for overflow
immediately.
(Convert_Glyph, Render_Single_Pass): Fix boundaries.
---
src/raster/ftraster.c | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/src/raster/ftraster.c b/src/raster/ftraster.c
index 93a86935c..4f70a737a 100644
--- a/src/raster/ftraster.c
+++ b/src/raster/ftraster.c
@@ -620,15 +620,16 @@
{
if ( !ras.fProfile )
{
+ ras.fProfile = (PProfile)ras.top;
ras.cProfile = (PProfile)ras.top;
- ras.fProfile = ras.cProfile;
ras.top += AlignProfileSize;
- }
- if ( ras.top >= ras.maxBuff )
- {
- ras.error = FT_THROW( Raster_Overflow );
- return FAILURE;
+ if ( ras.top >= ras.maxBuff )
+ {
+ FT_TRACE1(( "overflow in New_Profile\n" ));
+ ras.error = FT_THROW( Raster_Overflow );
+ return FAILURE;
+ }
}
ras.cProfile->start = 0;
@@ -721,19 +722,19 @@
ras.top += AlignProfileSize;
+ if ( ras.top >= ras.maxBuff )
+ {
+ FT_TRACE1(( "overflow in End_Profile\n" ));
+ ras.error = FT_THROW( Raster_Overflow );
+ return FAILURE;
+ }
+
ras.cProfile->offset = ras.top;
ras.cProfile->height = 0;
ras.num_Profs++;
}
- if ( ras.top >= ras.maxBuff )
- {
- FT_TRACE1(( "overflow in End_Profile\n" ));
- ras.error = FT_THROW( Raster_Overflow );
- return FAILURE;
- }
-
ras.joint = FALSE;
return SUCCESS;
@@ -1973,7 +1974,8 @@
ras.joint = FALSE;
ras.fresh = FALSE;
- ras.maxBuff = ras.sizeBuff - AlignProfileSize;
+ ras.top = ras.buff;
+ ras.maxBuff = ras.sizeBuff;
ras.numTurns = 0;
ras.num_Profs = 0;
@@ -3017,8 +3019,6 @@
ras.minY = (Long)y_min * ras.precision;
ras.maxY = (Long)y_max * ras.precision;
- ras.top = ras.buff;
-
ras.error = Raster_Err_Ok;
if ( Convert_Glyph( RAS_VARS flipped ) )
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] master c7fa00bf4 2/2: [raster] Fix pool overflow checking.,
Werner Lemberg <=