Protect against possible division by zeros (#316468, Steve Grubb)
2005-11-23 Behdad Esfahbod <behdad@gnome.org> Protect against possible division by zeros (#316468, Steve Grubb) * pango/pango-context.c (update_metrics_from_items), pango/pango-fontset.c (pango_fontset_real_get_metrics): If count is zero, do not alter approximate_{char,digit}_width. * pango/opentype/disasm.c: Err on invalid DeltaFormat.
This commit is contained in:
parent
e6e15352d1
commit
682db81c23
28
src/disasm.c
28
src/disasm.c
|
@ -444,18 +444,26 @@ Dump_Device (TTO_Device *Device, FILE *stream, int indent, FT_Bool is_gsub)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
n_per = 16 / bits;
|
|
||||||
mask = (1 << bits) - 1;
|
|
||||||
mask = mask << (16 - bits);
|
|
||||||
|
|
||||||
DUMP ("<DeltaValue>");
|
DUMP ("<DeltaValue>");
|
||||||
for (i = Device->StartSize; i <= Device->EndSize ; i++)
|
if (!bits)
|
||||||
{
|
{
|
||||||
FT_UShort val = Device->DeltaValue[i / n_per];
|
|
||||||
FT_Short signed_val = ((val << ((i % n_per) * bits)) & mask);
|
fprintf(stderr, "invalid DeltaFormat!!!!!\n");
|
||||||
dump (stream, indent, "%d", signed_val >> (16 - bits));
|
}
|
||||||
if (i != Device->EndSize)
|
else
|
||||||
DUMP (", ");
|
{
|
||||||
|
n_per = 16 / bits;
|
||||||
|
mask = (1 << bits) - 1;
|
||||||
|
mask = mask << (16 - bits);
|
||||||
|
|
||||||
|
for (i = Device->StartSize; i <= Device->EndSize ; i++)
|
||||||
|
{
|
||||||
|
FT_UShort val = Device->DeltaValue[i / n_per];
|
||||||
|
FT_Short signed_val = ((val << ((i % n_per) * bits)) & mask);
|
||||||
|
dump (stream, indent, "%d", signed_val >> (16 - bits));
|
||||||
|
if (i != Device->EndSize)
|
||||||
|
DUMP (", ");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
DUMP ("</DeltaValue>\n");
|
DUMP ("</DeltaValue>\n");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue