31 lines
1.1 KiB
Diff
31 lines
1.1 KiB
Diff
From 5397a417e61258c69209904e652a1f409ec3b9df Mon Sep 17 00:00:00 2001
|
|
From: erouault <erouault>
|
|
Date: Fri, 2 Dec 2016 22:13:32 +0000
|
|
Subject: [PATCH] * tools/tiffcp.c: avoid uint32 underflow in cpDecodedStrips
|
|
that can cause various issues, such as buffer overflows in the library.
|
|
Reported by Agostino Sarubbo. Fixes
|
|
http://bugzilla.maptools.org/show_bug.cgi?id=2598
|
|
|
|
Upstream-Status: Backport
|
|
CVE: CVE-2016-10268
|
|
Signed-off-by: Rajkumar Veer <rveer@mvista.com>
|
|
|
|
---
|
|
ChangeLog | 7 +++++++
|
|
tools/tiffcp.c | 2 +-
|
|
2 files changed, 8 insertions(+), 1 deletion(-)
|
|
|
|
Index: tiff-4.0.7/tools/tiffcp.c
|
|
===================================================================
|
|
--- tiff-4.0.7.orig/tools/tiffcp.c
|
|
+++ tiff-4.0.7/tools/tiffcp.c
|
|
@@ -985,7 +985,7 @@ DECLAREcpFunc(cpDecodedStrips)
|
|
tstrip_t s, ns = TIFFNumberOfStrips(in);
|
|
uint32 row = 0;
|
|
_TIFFmemset(buf, 0, stripsize);
|
|
- for (s = 0; s < ns; s++) {
|
|
+ for (s = 0; s < ns && row < imagelength; s++) {
|
|
tsize_t cc = (row + rowsperstrip > imagelength) ?
|
|
TIFFVStripSize(in, imagelength - row) : stripsize;
|
|
if (TIFFReadEncodedStrip(in, s, buf, cc) < 0
|