aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLars Magne Ingebrigtsen2013-08-13 20:22:04 +0200
committerLars Magne Ingebrigtsen2013-08-13 20:22:04 +0200
commit66e7901a78f6186dec959d08a85d71a87d3b940f (patch)
tree8896cb40382dcdd4d3c5e6534cc40be33b465ebb /src
parent21c58ae2a804b00812d3e609806326ac5d301e34 (diff)
downloademacs-66e7901a78f6186dec959d08a85d71a87d3b940f.tar.gz
emacs-66e7901a78f6186dec959d08a85d71a87d3b940f.zip
* image.c (imagemagick_filename_hint): Check for errors in the alist structure.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/image.c18
2 files changed, 18 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 6d2c5722bdf..af76a0c3780 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * image.c (imagemagick_filename_hint): Check for errors in the
4 alist structure.
5
12013-08-13 Eli Zaretskii <eliz@gnu.org> 62013-08-13 Eli Zaretskii <eliz@gnu.org>
2 7
3 * window.c (Fwindow_margins): Return nil when there's no marginal 8 * window.c (Fwindow_margins): Return nil when there's no marginal
diff --git a/src/image.c b/src/image.c
index 35cbbb631ae..3d2b325ded9 100644
--- a/src/image.c
+++ b/src/image.c
@@ -7853,19 +7853,27 @@ imagemagick_filename_hint (Lisp_Object spec)
7853{ 7853{
7854 Lisp_Object content_type = image_spec_value (spec, QCcontent_type, NULL); 7854 Lisp_Object content_type = image_spec_value (spec, QCcontent_type, NULL);
7855 Lisp_Object symbol = intern ("image-content-type-suffixes"); 7855 Lisp_Object symbol = intern ("image-content-type-suffixes");
7856 Lisp_Object suffix; 7856 Lisp_Object val;
7857 char *name, *prefix = "/tmp/foo."; 7857 char *name, *prefix = "/tmp/foo.";
7858 7858
7859 if (NILP (Fboundp (symbol))) 7859 if (NILP (Fboundp (symbol)))
7860 return NULL; 7860 return NULL;
7861 7861
7862 suffix = Fcar (Fcdr (Fassq (content_type, Fsymbol_value (symbol)))); 7862 val = Fassq (content_type, Fsymbol_value (symbol));
7863 if (! STRINGP (suffix)) 7863 if (! CONSP (val))
7864 return NULL; 7864 return NULL;
7865 7865
7866 name = xmalloc (strlen (prefix) + SBYTES (suffix) + 1); 7866 val = Fcdr (val);
7867 if (! CONSP (val))
7868 return NULL;
7869
7870 val = Fcar (val);
7871 if (! STRINGP (val))
7872 return NULL;
7873
7874 name = xmalloc (strlen (prefix) + SBYTES (val) + 1);
7867 strcpy(name, prefix); 7875 strcpy(name, prefix);
7868 strcat(name, SDATA (suffix)); 7876 strcat(name, SDATA (val));
7869 return name; 7877 return name;
7870} 7878}
7871 7879