[subset] More complete sanitization implementation for hdmx.
This commit is contained in:
parent
c02532a3d2
commit
96d7805a92
|
@ -93,10 +93,11 @@ struct hdmx
|
||||||
return_trace (true);
|
return_trace (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool sanitize (hb_sanitize_context_t *c) const
|
inline bool sanitize (hb_sanitize_context_t *c, unsigned int size_device_record) const
|
||||||
{
|
{
|
||||||
TRACE_SANITIZE (this);
|
TRACE_SANITIZE (this);
|
||||||
return_trace (likely (c->check_struct (this)));
|
return_trace (likely (c->check_struct (this)
|
||||||
|
&& c->check_range (this, size_device_record)));
|
||||||
}
|
}
|
||||||
|
|
||||||
HBUINT8 pixel_size; /* Pixel size for following widths (as ppem). */
|
HBUINT8 pixel_size; /* Pixel size for following widths (as ppem). */
|
||||||
|
@ -174,8 +175,17 @@ struct hdmx
|
||||||
inline bool sanitize (hb_sanitize_context_t *c) const
|
inline bool sanitize (hb_sanitize_context_t *c) const
|
||||||
{
|
{
|
||||||
TRACE_SANITIZE (this);
|
TRACE_SANITIZE (this);
|
||||||
return_trace (likely (c->check_struct (this)
|
if (unlikely (!c->check_struct (this) || version != 0))
|
||||||
&& version == 0));
|
return_trace (false);
|
||||||
|
if (unlikely (!c->check_range (this, get_size())))
|
||||||
|
return_trace (false);
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < num_records; i++)
|
||||||
|
{
|
||||||
|
if (unlikely (!records[i].sanitize (c, size_device_record)))
|
||||||
|
return_trace (false);
|
||||||
|
}
|
||||||
|
return_trace (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
Loading…
Reference in New Issue