diff options
| author | Lars Magne Ingebrigtsen | 2013-08-16 17:10:13 +0200 |
|---|---|---|
| committer | Lars Magne Ingebrigtsen | 2013-08-16 17:10:13 +0200 |
| commit | 8a6f875f7e613b2910ed3355ce0f2c01fa43cb9b (patch) | |
| tree | c229128b36510cf3abb966e28587d8899fbe21fa /src/image.c | |
| parent | 274ff63f7f7d19c3eb0c365ed7f8347131b9f62e (diff) | |
| download | emacs-8a6f875f7e613b2910ed3355ce0f2c01fa43cb9b.tar.gz emacs-8a6f875f7e613b2910ed3355ce0f2c01fa43cb9b.zip | |
(imagemagick_get_animation_cache): Fix a double-free error.
Diffstat (limited to 'src/image.c')
| -rw-r--r-- | src/image.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/image.c b/src/image.c index 082cc6a762a..ed10a3ed6cd 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -7901,9 +7901,9 @@ void | |||
| 7901 | imagemagick_prune_animation_cache () | 7901 | imagemagick_prune_animation_cache () |
| 7902 | { | 7902 | { |
| 7903 | struct animation_cache *cache = animation_cache; | 7903 | struct animation_cache *cache = animation_cache; |
| 7904 | struct animation_cache *prev; | 7904 | struct animation_cache *prev = NULL; |
| 7905 | EMACS_TIME old = sub_emacs_time (current_emacs_time (), | 7905 | EMACS_TIME old = sub_emacs_time (current_emacs_time (), |
| 7906 | EMACS_TIME_FROM_DOUBLE (60)); | 7906 | EMACS_TIME_FROM_DOUBLE (5)); |
| 7907 | 7907 | ||
| 7908 | while (cache) | 7908 | while (cache) |
| 7909 | { | 7909 | { |
| @@ -7920,17 +7920,18 @@ imagemagick_prune_animation_cache () | |||
| 7920 | cache = cache->next; | 7920 | cache = cache->next; |
| 7921 | free (this_cache); | 7921 | free (this_cache); |
| 7922 | } | 7922 | } |
| 7923 | else { | 7923 | else |
| 7924 | prev = cache; | 7924 | { |
| 7925 | cache = cache->next; | 7925 | prev = cache; |
| 7926 | } | 7926 | cache = cache->next; |
| 7927 | } | ||
| 7927 | } | 7928 | } |
| 7928 | } | 7929 | } |
| 7929 | 7930 | ||
| 7930 | struct animation_cache * | 7931 | struct animation_cache * |
| 7931 | imagemagick_get_animation_cache (MagickWand *wand) | 7932 | imagemagick_get_animation_cache (MagickWand *wand) |
| 7932 | { | 7933 | { |
| 7933 | char *signature = MagickGetImageSignature (wand); | 7934 | char *signature = xstrdup (MagickGetImageSignature (wand)); |
| 7934 | struct animation_cache *cache = animation_cache; | 7935 | struct animation_cache *cache = animation_cache; |
| 7935 | 7936 | ||
| 7936 | imagemagick_prune_animation_cache (); | 7937 | imagemagick_prune_animation_cache (); |