File: 0005-check-error-for-jpeg_read_scanlines.patch

package info (click to toggle)
libsixel 1.5.2-2%2Bdeb9u1
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 13,684 kB
  • sloc: ansic: 20,253; sh: 4,273; cpp: 1,227; makefile: 402; python: 306; xml: 271; ruby: 31; perl: 26
file content (25 lines) | stat: -rw-r--r-- 813 bytes parent folder | download
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
From: Takatsugu Nokubi <takatsugu.nokubi@robotfund.co.jp>
Date: Mon, 9 Sep 2019 15:06:50 +0900
Subject: check error for jpeg_read_scanlines

---
 src/loader.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/loader.c b/src/loader.c
index 5e0bcf3..8f5765a 100644
--- a/src/loader.c
+++ b/src/loader.c
@@ -153,6 +153,12 @@ load_jpeg(unsigned char **result,
 
     while (cinfo.output_scanline < cinfo.output_height) {
         jpeg_read_scanlines(&cinfo, buffer, 1);
+        if (cinfo.err->num_warnings > 0) {
+            sixel_helper_set_additional_message(
+                "jpeg_read_scanlines: error/warining occuered.");
+            status = SIXEL_BAD_INPUT;
+            goto end;
+        }
         memcpy(*result + (cinfo.output_scanline - 1) * row_stride, buffer[0], row_stride);
     }