summaryrefslogtreecommitdiffstats
path: root/14d2cea959977a84f0eb65d7b270cf7007375df1.patch
blob: 2356d765c346b6d5e7655ca3e3108823b8cf0e54 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
From 14d2cea959977a84f0eb65d7b270cf7007375df1 Mon Sep 17 00:00:00 2001
From: Cristy <urban-warrior@imagemagick.org>
Date: Sun, 9 Oct 2016 14:29:08 -0400
Subject: [PATCH] https://github.com/ImageMagick/ImageMagick/issues/284

---
 coders/sun.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/coders/sun.c b/coders/sun.c
index 6bbe3ac..f224b8b 100644
--- a/coders/sun.c
+++ b/coders/sun.c
@@ -266,7 +266,8 @@ static Image *ReadSUNImage(const ImageInfo *image_info,ExceptionInfo *exception)
     bytes_per_line,
     extent,
     height,
-    pixels_length;
+    pixels_length,
+    quantum;
 
   ssize_t
     count,
@@ -442,9 +443,10 @@ static Image *ReadSUNImage(const ImageInfo *image_info,ExceptionInfo *exception)
         sun_data=(unsigned char *) RelinquishMagickMemory(sun_data);
         ThrowReaderException(ResourceLimitError,"ImproperImageHeader");
       }
-    bytes_per_line+=7;
+    quantum=sun_info.depth == 1 ? 15 : 7;
+    bytes_per_line+=quantum;
     bytes_per_line<<=1;
-    if ((bytes_per_line >> 1) != (sun_info.width*sun_info.depth+7))
+    if ((bytes_per_line >> 1) != (sun_info.width*sun_info.depth+quantum))
       {
         sun_data=(unsigned char *) RelinquishMagickMemory(sun_data);
         ThrowReaderException(ResourceLimitError,"ImproperImageHeader");