diff options
| author | Gerd Moellmann | 2001-07-24 11:28:18 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2001-07-24 11:28:18 +0000 |
| commit | 1783ffa26e0a54c54841cc84d309365cf4dd89d5 (patch) | |
| tree | 689a4edb56b5e32c28db9796eb1b37dd3970d8e1 /src | |
| parent | 68b7eaa91c65665b00b485ba916712c88348e3f0 (diff) | |
| download | emacs-1783ffa26e0a54c54841cc84d309365cf4dd89d5.tar.gz emacs-1783ffa26e0a54c54841cc84d309365cf4dd89d5.zip | |
(valid_image_p): Protect better against invalid image
specifications.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xfns.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/xfns.c b/src/xfns.c index 0d66c03e235..0d71a16fa6a 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -5318,11 +5318,22 @@ valid_image_p (object) | |||
| 5318 | 5318 | ||
| 5319 | if (CONSP (object) && EQ (XCAR (object), Qimage)) | 5319 | if (CONSP (object) && EQ (XCAR (object), Qimage)) |
| 5320 | { | 5320 | { |
| 5321 | Lisp_Object symbol = Fplist_get (XCDR (object), QCtype); | 5321 | Lisp_Object tem; |
| 5322 | struct image_type *type = lookup_image_type (symbol); | 5322 | |
| 5323 | 5323 | for (tem = XCDR (object); CONSP (tem); tem = XCDR (tem)) | |
| 5324 | if (type) | 5324 | if (EQ (XCAR (tem), QCtype)) |
| 5325 | valid_p = type->valid_p (object); | 5325 | { |
| 5326 | tem = XCDR (tem); | ||
| 5327 | if (CONSP (tem) && SYMBOLP (XCAR (tem))) | ||
| 5328 | { | ||
| 5329 | struct image_type *type; | ||
| 5330 | type = lookup_image_type (XCAR (tem)); | ||
| 5331 | if (type) | ||
| 5332 | valid_p = type->valid_p (object); | ||
| 5333 | } | ||
| 5334 | |||
| 5335 | break; | ||
| 5336 | } | ||
| 5326 | } | 5337 | } |
| 5327 | 5338 | ||
| 5328 | return valid_p; | 5339 | return valid_p; |