diff options
author | Kenichi Handa <handa@m17n.org> | 2009-07-28 02:09:52 +0000 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2009-07-28 02:09:52 +0000 |
commit | 087048cd5d94bd63dd71ed36fb79f0388275cf6e (patch) | |
tree | ee8eaaf5eb5b8b61559e2030a7c3f0797275ba37 /src/font.c | |
parent | 4fa58085e38a947ebdd0e9e8e505f23ea2aaecbd (diff) | |
download | emacs-087048cd5d94bd63dd71ed36fb79f0388275cf6e.tar.gz |
(font_parse_xlfd): Check DPI and AVGWIDTH properties more rigidly.
Diffstat (limited to 'src/font.c')
-rw-r--r-- | src/font.c | 11 |
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 { |