]> git.eshelyaron.com Git - emacs.git/commitdiff
* image.c (imagemagick_filename_hint): Check for errors in the alist structure.
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 13 Aug 2013 18:22:04 +0000 (20:22 +0200)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 13 Aug 2013 18:22:04 +0000 (20:22 +0200)
src/ChangeLog
src/image.c

index 6d2c5722bdfa079a15e6f594f4f0bb4e5a201db5..af76a0c3780f90a9dc0c2953c87a4db9bc73962c 100644 (file)
@@ -1,3 +1,8 @@
+2013-08-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * image.c (imagemagick_filename_hint): Check for errors in the
+       alist structure.
+
 2013-08-13  Eli Zaretskii  <eliz@gnu.org>
 
        * window.c (Fwindow_margins): Return nil when there's no marginal
index 35cbbb631aee7e28715ff010c97340e7dc016468..3d2b325ded9cdc3c6bc56364fad9c1bedebec807 100644 (file)
@@ -7853,19 +7853,27 @@ imagemagick_filename_hint (Lisp_Object spec)
 {
   Lisp_Object content_type = image_spec_value (spec, QCcontent_type, NULL);
   Lisp_Object symbol = intern ("image-content-type-suffixes");
-  Lisp_Object suffix;
+  Lisp_Object val;
   char *name, *prefix = "/tmp/foo.";
 
   if (NILP (Fboundp (symbol)))
     return NULL;
 
-  suffix = Fcar (Fcdr (Fassq (content_type, Fsymbol_value (symbol))));
-  if (! STRINGP (suffix))
+  val = Fassq (content_type, Fsymbol_value (symbol));
+  if (! CONSP (val))
     return NULL;
 
-  name = xmalloc (strlen (prefix) + SBYTES (suffix) + 1);
+  val = Fcdr (val);
+  if (! CONSP (val))
+    return NULL;
+  
+  val = Fcar (val);
+  if (! STRINGP (val))
+    return NULL;
+
+  name = xmalloc (strlen (prefix) + SBYTES (val) + 1);
   strcpy(name, prefix);
-  strcat(name, SDATA (suffix));
+  strcat(name, SDATA (val));
   return name;
 }