mirror of
https://https.git.savannah.gnu.org/git/guix.git/
synced 2025-07-16 12:00:35 +02:00
gnu: libtiff: Fix two integer overflows.
* gnu/packages/patches/libtiff-tiffycbcrtorgb-integer-overflow.patch, gnu/packages/patches/libtiff-tiffycbcrtorgbinit-integer-overflow.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/image.scm (libtiff-4.0.8)[source]: Use them.
This commit is contained in:
parent
625e7cd654
commit
61adfb00b1
4 changed files with 105 additions and 1 deletions
|
@ -0,0 +1,57 @@
|
|||
Fix an integer overflow TIFFYCbCrtoRGB():
|
||||
|
||||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1844
|
||||
|
||||
3rd party Git reference:
|
||||
|
||||
https://github.com/vadz/libtiff/commit/02669064e927074819ce1ed39aba0fccaa167717
|
||||
|
||||
2017-05-29 Even Rouault <even.rouault at spatialys.com>
|
||||
|
||||
* libtiff/tif_color.c: TIFFYCbCrToRGBInit(): stricter clamping to avoid
|
||||
int32 overflow in TIFFYCbCrtoRGB().
|
||||
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1844
|
||||
Credit to OSS Fuzz
|
||||
|
||||
|
||||
/cvs/maptools/cvsroot/libtiff/ChangeLog,v <-- ChangeLog
|
||||
new revision: 1.1241; previous revision: 1.1240
|
||||
/cvs/maptools/cvsroot/libtiff/libtiff/tif_color.c,v <-- libtiff/tif_color.c
|
||||
new revision: 1.24; previous revision: 1.23
|
||||
|
||||
Index: libtiff/libtiff/tif_color.c
|
||||
===================================================================
|
||||
RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_color.c,v
|
||||
retrieving revision 1.23
|
||||
retrieving revision 1.24
|
||||
diff -u -r1.23 -r1.24
|
||||
--- libtiff/libtiff/tif_color.c 13 May 2017 18:17:34 -0000 1.23
|
||||
+++ libtiff/libtiff/tif_color.c 29 May 2017 10:12:54 -0000 1.24
|
||||
@@ -1,4 +1,4 @@
|
||||
-/* $Id: tif_color.c,v 1.23 2017-05-13 18:17:34 erouault Exp $ */
|
||||
+/* $Id: tif_color.c,v 1.24 2017-05-29 10:12:54 erouault Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988-1997 Sam Leffler
|
||||
@@ -275,10 +275,10 @@
|
||||
for (i = 0, x = -128; i < 256; i++, x++) {
|
||||
int32 Cr = (int32)CLAMPw(Code2V(x, refBlackWhite[4] - 128.0F,
|
||||
refBlackWhite[5] - 128.0F, 127),
|
||||
- -128.0F * 64, 128.0F * 64);
|
||||
+ -128.0F * 32, 128.0F * 32);
|
||||
int32 Cb = (int32)CLAMPw(Code2V(x, refBlackWhite[2] - 128.0F,
|
||||
refBlackWhite[3] - 128.0F, 127),
|
||||
- -128.0F * 64, 128.0F * 64);
|
||||
+ -128.0F * 32, 128.0F * 32);
|
||||
|
||||
ycbcr->Cr_r_tab[i] = (int32)((D1*Cr + ONE_HALF)>>SHIFT);
|
||||
ycbcr->Cb_b_tab[i] = (int32)((D3*Cb + ONE_HALF)>>SHIFT);
|
||||
@@ -286,7 +286,7 @@
|
||||
ycbcr->Cb_g_tab[i] = D4*Cb + ONE_HALF;
|
||||
ycbcr->Y_tab[i] =
|
||||
(int32)CLAMPw(Code2V(x + 128, refBlackWhite[0], refBlackWhite[1], 255),
|
||||
- -128.0F * 64, 128.0F * 64);
|
||||
+ -128.0F * 32, 128.0F * 32);
|
||||
}
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue