summaryrefslogtreecommitdiffstats
path: root/meta/recipes-multimedia/libtiff/files/CVE-2016-9540.patch
blob: dddaa0c87ed800545c43e84604784f4e2fa1697d (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
From 5ad9d8016fbb60109302d558f7edb2cb2a3bb8e3 Mon Sep 17 00:00:00 2001
From: erouault <erouault>
Date: Sat, 8 Oct 2016 15:54:56 +0000
Subject: [PATCH] fix CVE-2016-9540
 * tools/tiffcp.c: fix out-of-bounds write on tiled images with odd
 tile width vs image width. Reported as MSVR 35103
 by Axel Souchet and Vishal Chauhan from the MSRC Vulnerabilities &
 Mitigations team.

CVE: CVE-2016-9540

Upstream-Status: Backport
https://github.com/vadz/libtiff/commit/5ad9d8016fbb60109302d558f7edb2cb2a3bb8e3

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
---
 ChangeLog      | 7 +++++++
 tools/tiffcp.c | 4 ++--
 2 files changed, 9 insertions(+), 2 deletions(-)

Index: tiff-4.0.4/ChangeLog
===================================================================
--- tiff-4.0.4.orig/ChangeLog	2016-11-24 14:40:43.046867737 +0800
+++ tiff-4.0.4/ChangeLog	2016-11-28 14:38:01.681276171 +0800
@@ -17,6 +17,13 @@
 	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2500
 	(CVE-2014-8127, duplicate: CVE-2016-3658)
 
+2016-10-08 Even Rouault <even.rouault at spatialys.com>
+
+	* tools/tiffcp.c: fix out-of-bounds write on tiled images with odd
+	tile width vs image width. Reported as MSVR 35103
+	by Axel Souchet and Vishal Chauhan from the MSRC Vulnerabilities &
+	Mitigations team.
+
 2016-09-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

 	* libtiff/tif_getimage.c (TIFFRGBAImageOK): Reject attempts to
Index: tiff-4.0.4/tools/tiffcp.c
===================================================================
--- tiff-4.0.4.orig/tools/tiffcp.c	2015-06-21 09:09:10.000000000 +0800
+++ tiff-4.0.4/tools/tiffcp.c	2016-11-28 14:41:02.221277430 +0800
@@ -1338,7 +1338,7 @@
 		uint32 colb = 0;
 		uint32 col;
 
-		for (col = 0; col < imagewidth; col += tw) {
+		for (col = 0; col < imagewidth && colb < imagew; col += tw) {
 			if (TIFFReadTile(in, tilebuf, col, row, 0, 0) < 0
 			    && !ignore) {
 				TIFFError(TIFFFileName(in),
@@ -1523,7 +1523,7 @@
 		uint32 colb = 0;
 		uint32 col;
 
-		for (col = 0; col < imagewidth; col += tw) {
+		for (col = 0; col < imagewidth && colb < imagew; col += tw) {
 			/*
 			 * Tile is clipped horizontally.  Calculate
 			 * visible portion and skewing factors.