summaryrefslogtreecommitdiff
path: root/src/font.c
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2009-07-28 02:09:52 +0000
committerKenichi Handa <handa@m17n.org>2009-07-28 02:09:52 +0000
commit087048cd5d94bd63dd71ed36fb79f0388275cf6e (patch)
treeee8eaaf5eb5b8b61559e2030a7c3f0797275ba37 /src/font.c
parent4fa58085e38a947ebdd0e9e8e505f23ea2aaecbd (diff)
downloademacs-087048cd5d94bd63dd71ed36fb79f0388275cf6e.tar.gz
(font_parse_xlfd): Check DPI and AVGWIDTH properties more rigidly.
Diffstat (limited to 'src/font.c')
-rw-r--r--src/font.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/font.c b/src/font.c
index d2cd1febe93..cfc48523d12 100644
--- a/src/font.c
+++ b/src/font.c
@@ -1139,7 +1139,10 @@ font_parse_xlfd (name, font)
}
}
- ASET (font, FONT_DPI_INDEX, INTERN_FIELD (XLFD_RESY_INDEX));
+ val = INTERN_FIELD (XLFD_RESY_INDEX);
+ if (! NILP (val) && ! INTEGERP (val))
+ return -1;
+ ASET (font, FONT_DPI_INDEX, val);
val = INTERN_FIELD (XLFD_SPACING_INDEX);
if (! NILP (val))
{
@@ -1151,8 +1154,10 @@ font_parse_xlfd (name, font)
p = f[XLFD_AVGWIDTH_INDEX];
if (*p == '~')
p++;
- ASET (font, FONT_AVGWIDTH_INDEX,
- font_intern_prop (p, f[XLFD_REGISTRY_INDEX] - 1 - p, 0));
+ val = font_intern_prop (p, f[XLFD_REGISTRY_INDEX] - 1 - p, 0);
+ if (! NILP (val) && ! INTEGERP (val))
+ return -1;
+ ASET (font, FONT_AVGWIDTH_INDEX, val);
}
else
{