[bdf] Fix underflow of an unsigned value.
bdflib.c:1562 could be reached with `font->glyphs_used == 0'. That caused an underflow of the unsigned value which results in undefined behaviour. * src/bdf/bdflib.c (src/bdf/bdflib.c): Bail out earlier than before if the `ENCODING' keyword cannot be found.
This commit is contained in:
parent
19d8687f0b
commit
0f6be06444
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
||||||
|
2018-06-17 Armin Hasitzka <prince.cherusker@gmail.com>
|
||||||
|
|
||||||
|
[bdf] Fix underflow of an unsigned value.
|
||||||
|
|
||||||
|
bdflib.c:1562 could be reached with `font->glyphs_used == 0'. That
|
||||||
|
caused an underflow of the unsigned value which results in undefined
|
||||||
|
behaviour.
|
||||||
|
|
||||||
|
* src/bdf/bdflib.c (src/bdf/bdflib.c): Bail out earlier than before
|
||||||
|
if the `ENCODING' keyword cannot be found.
|
||||||
|
|
||||||
2018-06-17 Werner Lemberg <wl@gnu.org>
|
2018-06-17 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
[base] Add tracing for `FT_Bitmap_Blend'.
|
[base] Add tracing for `FT_Bitmap_Blend'.
|
||||||
|
|
|
@ -1556,6 +1556,9 @@
|
||||||
goto Exit;
|
goto Exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( !( p->flags & BDF_ENCODING_ ) )
|
||||||
|
goto Missing_Encoding;
|
||||||
|
|
||||||
/* Point at the glyph being constructed. */
|
/* Point at the glyph being constructed. */
|
||||||
if ( p->glyph_enc == -1 )
|
if ( p->glyph_enc == -1 )
|
||||||
glyph = font->unencoded + ( font->unencoded_used - 1 );
|
glyph = font->unencoded + ( font->unencoded_used - 1 );
|
||||||
|
@ -1626,9 +1629,6 @@
|
||||||
/* Expect the SWIDTH (scalable width) field next. */
|
/* Expect the SWIDTH (scalable width) field next. */
|
||||||
if ( _bdf_strncmp( line, "SWIDTH", 6 ) == 0 )
|
if ( _bdf_strncmp( line, "SWIDTH", 6 ) == 0 )
|
||||||
{
|
{
|
||||||
if ( !( p->flags & BDF_ENCODING_ ) )
|
|
||||||
goto Missing_Encoding;
|
|
||||||
|
|
||||||
error = _bdf_list_split( &p->list, (char *)" +", line, linelen );
|
error = _bdf_list_split( &p->list, (char *)" +", line, linelen );
|
||||||
if ( error )
|
if ( error )
|
||||||
goto Exit;
|
goto Exit;
|
||||||
|
@ -1642,9 +1642,6 @@
|
||||||
/* Expect the DWIDTH (scalable width) field next. */
|
/* Expect the DWIDTH (scalable width) field next. */
|
||||||
if ( _bdf_strncmp( line, "DWIDTH", 6 ) == 0 )
|
if ( _bdf_strncmp( line, "DWIDTH", 6 ) == 0 )
|
||||||
{
|
{
|
||||||
if ( !( p->flags & BDF_ENCODING_ ) )
|
|
||||||
goto Missing_Encoding;
|
|
||||||
|
|
||||||
error = _bdf_list_split( &p->list, (char *)" +", line, linelen );
|
error = _bdf_list_split( &p->list, (char *)" +", line, linelen );
|
||||||
if ( error )
|
if ( error )
|
||||||
goto Exit;
|
goto Exit;
|
||||||
|
@ -1670,9 +1667,6 @@
|
||||||
/* Expect the BBX field next. */
|
/* Expect the BBX field next. */
|
||||||
if ( _bdf_strncmp( line, "BBX", 3 ) == 0 )
|
if ( _bdf_strncmp( line, "BBX", 3 ) == 0 )
|
||||||
{
|
{
|
||||||
if ( !( p->flags & BDF_ENCODING_ ) )
|
|
||||||
goto Missing_Encoding;
|
|
||||||
|
|
||||||
error = _bdf_list_split( &p->list, (char *)" +", line, linelen );
|
error = _bdf_list_split( &p->list, (char *)" +", line, linelen );
|
||||||
if ( error )
|
if ( error )
|
||||||
goto Exit;
|
goto Exit;
|
||||||
|
|
Loading…
Reference in New Issue