emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r113854: * image.c (imagemagick_filename_hint): Chec


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] trunk r113854: * image.c (imagemagick_filename_hint): Check for errors in the alist structure.
Date: Tue, 13 Aug 2013 18:22:06 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 113854
revision-id: address@hidden
parent: address@hidden
committer: Lars Magne Ingebrigtsen <address@hidden>
branch nick: trunk
timestamp: Tue 2013-08-13 20:22:04 +0200
message:
  * image.c (imagemagick_filename_hint): Check for errors in the alist 
structure.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/image.c                    image.c-20091113204419-o5vbwnq5f7feedwu-2969
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-08-13 18:01:18 +0000
+++ b/src/ChangeLog     2013-08-13 18:22:04 +0000
@@ -1,3 +1,8 @@
+2013-08-13  Lars Magne Ingebrigtsen  <address@hidden>
+
+       * image.c (imagemagick_filename_hint): Check for errors in the
+       alist structure.
+
 2013-08-13  Eli Zaretskii  <address@hidden>
 
        * window.c (Fwindow_margins): Return nil when there's no marginal

=== modified file 'src/image.c'
--- a/src/image.c       2013-08-13 17:45:34 +0000
+++ b/src/image.c       2013-08-13 18:22:04 +0000
@@ -7853,19 +7853,27 @@
 {
   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))
-    return NULL;
-
-  name = xmalloc (strlen (prefix) + SBYTES (suffix) + 1);
+  val = Fassq (content_type, Fsymbol_value (symbol));
+  if (! CONSP (val))
+    return NULL;
+
+  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;
 }
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]