diff options
| author | Lars Magne Ingebrigtsen | 2013-08-13 20:22:04 +0200 |
|---|---|---|
| committer | Lars Magne Ingebrigtsen | 2013-08-13 20:22:04 +0200 |
| commit | 66e7901a78f6186dec959d08a85d71a87d3b940f (patch) | |
| tree | 8896cb40382dcdd4d3c5e6534cc40be33b465ebb /src | |
| parent | 21c58ae2a804b00812d3e609806326ac5d301e34 (diff) | |
| download | emacs-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/ChangeLog | 5 | ||||
| -rw-r--r-- | src/image.c | 18 |
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 @@ | |||
| 1 | 2013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 2 | |||
| 3 | * image.c (imagemagick_filename_hint): Check for errors in the | ||
| 4 | alist structure. | ||
| 5 | |||
| 1 | 2013-08-13 Eli Zaretskii <eliz@gnu.org> | 6 | 2013-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 | ||