[glyf] Limit points in a glyf to 10000 roughly
Only enforced when components are being expanded. Fixes https://github.com/harfbuzz/harfbuzz/issues/3838
This commit is contained in:
parent
9aad3dba8f
commit
477d71724c
|
@ -16,6 +16,11 @@ struct glyf_accelerator_t;
|
||||||
namespace glyf_impl {
|
namespace glyf_impl {
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef HB_GLYF_MAX_POINTS
|
||||||
|
#define HB_GLYF_MAX_POINTS 10000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
enum phantom_point_index_t
|
enum phantom_point_index_t
|
||||||
{
|
{
|
||||||
PHANTOM_LEFT = 0,
|
PHANTOM_LEFT = 0,
|
||||||
|
@ -313,6 +318,9 @@ struct Glyph
|
||||||
for (unsigned int i = 0; i < PHANTOM_COUNT; i++)
|
for (unsigned int i = 0; i < PHANTOM_COUNT; i++)
|
||||||
phantoms[i] = comp_points[comp_points.length - PHANTOM_COUNT + i];
|
phantoms[i] = comp_points[comp_points.length - PHANTOM_COUNT + i];
|
||||||
|
|
||||||
|
if (all_points.length > HB_GLYF_MAX_POINTS)
|
||||||
|
return false;
|
||||||
|
|
||||||
all_points.extend (comp_points.sub_array (0, comp_points.length - PHANTOM_COUNT));
|
all_points.extend (comp_points.sub_array (0, comp_points.length - PHANTOM_COUNT));
|
||||||
|
|
||||||
comp_index++;
|
comp_index++;
|
||||||
|
|
Loading…
Reference in New Issue