From 6eecfe38864a3596fe8fbbe400c6cb6111117d18 Mon Sep 17 00:00:00 2001 From: John Bowler Date: Sun, 22 Mar 2015 19:42:14 -0500 Subject: [PATCH] [libpng16] Fixed simplified 8-bit-linear to sRGB alpha. The calculated alpha value was wrong. It's not clear if this affected the final stored value; in the obvious code path the upper and lower 8-bits of the alpha value were identical and the alpha was truncated to 8-bits rather than dividing by 257 (John Bowler). --- ANNOUNCE | 10 ++++++++-- CHANGES | 8 +++++++- pngread.c | 1 + 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ANNOUNCE b/ANNOUNCE index 410fd26ce..a1a0d6a0d 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,4 +1,4 @@ -Libpng 1.6.17rc06 - March 21, 2015 +Libpng 1.6.17rc06 - March 23, 2015 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. @@ -92,8 +92,14 @@ Version 1.6.17rc05 [March 21, 2015] Reverted "& 0xff" additions of version 1.6.17beta01. Libpng passes the Coverity scan without them. -Version 1.6.17rc06 [March 21, 2015] +Version 1.6.17rc06 [March 23, 2015] Remove pnglibconf.dfn and pnglibconf.pre with "make clean". + Reformatted some "&0xff" instances to "& 0xff". + Fixed simplified 8-bit-linear to sRGB alpha. The calculated alpha + value was wrong. It's not clear if this affected the final stored + value; in the obvious code path the upper and lower 8-bits of the + alpha value were identical and the alpha was truncated to 8-bits + rather than dividing by 257 (John Bowler). Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index ad382b577..38ede6e20 100644 --- a/CHANGES +++ b/CHANGES @@ -5193,8 +5193,14 @@ Version 1.6.17rc05 [March 21, 2015] Reverted "& 0xff" additions of version 1.6.17beta01. Libpng passes the Coverity scan without them. -Version 1.6.17rc06 [March 21, 2015] +Version 1.6.17rc06 [March 23, 2015] Remove pnglibconf.dfn and pnglibconf.pre with "make clean". + Reformatted some "&0xff" instances to "& 0xff". + Fixed simplified 8-bit-linear to sRGB alpha. The calculated alpha + value was wrong. It's not clear if this affected the final stored + value; in the obvious code path the upper and lower 8-bits of the + alpha value were identical and the alpha was truncated to 8-bits + rather than dividing by 257 (John Bowler). Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/pngread.c b/pngread.c index c658a4692..ab01cae13 100644 --- a/pngread.c +++ b/pngread.c @@ -1823,6 +1823,7 @@ png_create_colormap_entry(png_image_read_control *display, y = (y + 128) >> 8; y *= 255; y = PNG_sRGB_FROM_LINEAR((y + 64) >> 7); + alpha = PNG_DIV257(alpha); encoding = P_sRGB; }