Added a check for unfortunate values of a MAG record in a GDS text

record.  Failure to use the right 8-byte real format can produce
bizarre results where a label's bounding box ends up in some random
place and messes up an entire top level circuit's bounding box.
This commit is contained in:
Tim Edwards 2022-09-19 17:26:42 -04:00
parent 7905e15ae3
commit 82c79b36ee
2 changed files with 11 additions and 5 deletions

View File

@ -1 +1 @@
8.3.324
8.3.325

View File

@ -809,7 +809,13 @@ calmaElementText()
if (nbytes > 0 && rtype == CALMA_MAG)
{
calmaReadR8(&dval);
/* Sanity check on dval (must be nonzero positive) */
if ((dval <= 0) || (dval > 10000))
{
CalmaReadError("Invalid text magnification %lg.\n", dval);
/* Keep default size */
}
else
/* Assume that MAG is the label size in microns */
/* "size" is the label size in 10 * (database units) */
size = (int)((dval * 1000 * cifCurReadStyle->crs_multiplier)