aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGerd Moellmann2001-07-24 11:28:18 +0000
committerGerd Moellmann2001-07-24 11:28:18 +0000
commit1783ffa26e0a54c54841cc84d309365cf4dd89d5 (patch)
tree689a4edb56b5e32c28db9796eb1b37dd3970d8e1 /src
parent68b7eaa91c65665b00b485ba916712c88348e3f0 (diff)
downloademacs-1783ffa26e0a54c54841cc84d309365cf4dd89d5.tar.gz
emacs-1783ffa26e0a54c54841cc84d309365cf4dd89d5.zip
(valid_image_p): Protect better against invalid image
specifications.
Diffstat (limited to 'src')
-rw-r--r--src/xfns.c21
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;