[bdf] Ignore data after `ENDFONT'.
Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10798 * src/bdf/bdflib.c (_bdf_parse_end): New function. (_bdf_parse_glyphs): Switch to `_bdf_parse_end' after `ENDFONT' has been encountered.
This commit is contained in:
parent
456e9c8fce
commit
f1b6183f36
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
||||||
|
2018-12-04 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
[bdf] Ignore data after `ENDFONT'.
|
||||||
|
|
||||||
|
Reported as
|
||||||
|
|
||||||
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10798
|
||||||
|
|
||||||
|
* src/bdf/bdflib.c (_bdf_parse_end): New function.
|
||||||
|
(_bdf_parse_glyphs): Switch to `_bdf_parse_end' after `ENDFONT' has
|
||||||
|
been encountered.
|
||||||
|
|
||||||
2018-12-02 Alexei Podtelezhnikov <apodtele@gmail.com>
|
2018-12-02 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||||||
|
|
||||||
* builds/windows/visualc/freetype.dsp: Dust off.
|
* builds/windows/visualc/freetype.dsp: Dust off.
|
||||||
|
|
|
@ -1262,6 +1262,25 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static FT_Error
|
||||||
|
_bdf_parse_end( char* line,
|
||||||
|
unsigned long linelen,
|
||||||
|
unsigned long lineno,
|
||||||
|
void* call_data,
|
||||||
|
void* client_data )
|
||||||
|
{
|
||||||
|
/* a no-op; we ignore everything after `ENDFONT' */
|
||||||
|
|
||||||
|
FT_UNUSED( line );
|
||||||
|
FT_UNUSED( linelen );
|
||||||
|
FT_UNUSED( lineno );
|
||||||
|
FT_UNUSED( call_data );
|
||||||
|
FT_UNUSED( client_data );
|
||||||
|
|
||||||
|
return FT_Err_Ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Actually parse the glyph info and bitmaps. */
|
/* Actually parse the glyph info and bitmaps. */
|
||||||
static FT_Error
|
static FT_Error
|
||||||
_bdf_parse_glyphs( char* line,
|
_bdf_parse_glyphs( char* line,
|
||||||
|
@ -1275,6 +1294,7 @@
|
||||||
unsigned char* bp;
|
unsigned char* bp;
|
||||||
unsigned long i, slen, nibbles;
|
unsigned long i, slen, nibbles;
|
||||||
|
|
||||||
|
_bdf_line_func_t* next;
|
||||||
_bdf_parse_t* p;
|
_bdf_parse_t* p;
|
||||||
bdf_glyph_t* glyph;
|
bdf_glyph_t* glyph;
|
||||||
bdf_font_t* font;
|
bdf_font_t* font;
|
||||||
|
@ -1282,11 +1302,11 @@
|
||||||
FT_Memory memory;
|
FT_Memory memory;
|
||||||
FT_Error error = FT_Err_Ok;
|
FT_Error error = FT_Err_Ok;
|
||||||
|
|
||||||
FT_UNUSED( call_data );
|
|
||||||
FT_UNUSED( lineno ); /* only used in debug mode */
|
FT_UNUSED( lineno ); /* only used in debug mode */
|
||||||
|
|
||||||
|
|
||||||
p = (_bdf_parse_t *)client_data;
|
next = (_bdf_line_func_t *)call_data;
|
||||||
|
p = (_bdf_parse_t *) client_data;
|
||||||
|
|
||||||
font = p->font;
|
font = p->font;
|
||||||
memory = font->memory;
|
memory = font->memory;
|
||||||
|
@ -1367,6 +1387,7 @@
|
||||||
by_encoding );
|
by_encoding );
|
||||||
|
|
||||||
p->flags &= ~BDF_START_;
|
p->flags &= ~BDF_START_;
|
||||||
|
*next = _bdf_parse_end;
|
||||||
|
|
||||||
goto Exit;
|
goto Exit;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue