[libpng16] Revised workaround for Coverity issue in pngvalid.c

This commit is contained in:
Glenn Randers-Pehrson 2016-01-23 10:09:18 -06:00
parent 7f576964d8
commit 93a3bc7343
3 changed files with 12 additions and 20 deletions

View File

@ -1,4 +1,4 @@
Libpng 1.6.22beta01 - January 18, 2016
Libpng 1.6.22beta01 - January 22, 2016
This is not intended to be a public release. It will be replaced
within a few weeks by a public version or by another test version.
@ -25,7 +25,7 @@ Other information:
Changes since the last public release (1.6.21):
Version 1.6.22beta01 [January 18, 2016]
Version 1.6.22beta01 [January 22, 2016]
Changed PNG_USE_MKSTEMP to __COVERITY__ to select alternate
"tmpfile()" implementation in contrib/libtests/pngstest.c
Fixed NO_STDIO build of pngunknown.c to skip calling png_init_io()
@ -38,6 +38,7 @@ Version 1.6.22beta01 [January 18, 2016]
disallows image width/height/format that *might* overflow. This is
a quiet API change that limits in-memory image size (uncompressed) to
less than 4GByte and image row size (stride) to less than 2GByte.
Revised workaround for false-positive Coverity issue in pngvalid.c.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit

View File

@ -5484,7 +5484,7 @@ Version 1.6.21rc02 [January 7, 2016]
Version 1.6.21 [January 15, 2016]
Worked around a false-positive Coverity issue in pngvalid.c.
Version 1.6.22beta01 [January 18, 2016]
Version 1.6.22beta01 [January 22, 2016]
Changed PNG_USE_MKSTEMP to __COVERITY__ to select alternate
"tmpfile()" implementation in contrib/libtests/pngstest.c
Fixed NO_STDIO build of pngunknown.c to skip calling png_init_io()
@ -5497,6 +5497,7 @@ Version 1.6.22beta01 [January 18, 2016]
disallows image width/height/format that *might* overflow. This is
a quiet API change that limits in-memory image size (uncompressed) to
less than 4GByte and image row size (stride) to less than 2GByte.
Revised workaround for false-positive Coverity issue in pngvalid.c.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit

View File

@ -1,7 +1,7 @@
/* pngvalid.c - validate libpng by constructing then reading png files.
*
* Last changed in libpng 1.6.21 [January 15, 2016]
* Last changed in libpng 1.6.22 [(PENDING RELEASE)]
* Copyright (c) 2014-2016 Glenn Randers-Pehrson
* Written by John Cunningham Bowler
*
@ -309,13 +309,8 @@ static void r16(png_uint_16p p16, size_t count)
}
}
#ifdef __COVERITY__
# define R16(this)\
r16(&(this), (sizeof (this))/2U/*(sizeof (png_uint_16))*/)
#else
# define R16(this)\
r16(&(this), (sizeof (this))/(sizeof (png_uint_16)))
#endif
#define R16(this) r16(&(this), (sizeof (this))/(sizeof (png_uint_16)))
#define R16_1(this) r16(&(this), (size_t) 1U)
#if defined PNG_READ_RGB_TO_GRAY_SUPPORTED ||\
defined PNG_READ_FILLER_SUPPORTED
@ -331,13 +326,8 @@ static void r32(png_uint_32p p32, size_t count)
}
}
#ifdef __COVERITY__
# define R32(this)\
r32(&(this), (sizeof (this))/4U/*(sizeof (png_uint_32))*/)
#else
# define R32(this)\
r32(&(this), (sizeof (this))/(sizeof (png_uint_32)))
#endif
#define R32(this) r32(&(this), (sizeof (this))/(sizeof (png_uint_32)))
#define R32_1(this) r32(&(this), (size_t) 1U)
#endif /* READ_FILLER || READ_RGB_TO_GRAY */
@ -350,7 +340,7 @@ random_mod(unsigned int max)
{
png_uint_16 x;
R16(x);
R16_1(x);
return x % max; /* 0 .. max-1 */
}
@ -7313,7 +7303,7 @@ image_transform_png_set_rgb_to_gray_ini(const image_transform *this,
png_uint_32 ru;
double total;
R32(ru);
R32_1(ru);
data.green_coefficient = total = (ru & 0xffff) / 65535.;
ru >>= 16;
data.red_coefficient = (1 - total) * (ru & 0xffff) / 65535.;