New issue
Advanced search Search tips

Issue 771075 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 770795



Sign in to add a comment

Upgrade libpng

Project Member Reported by cavalcantii@chromium.org, Oct 3 2017

Issue description

Chromium is using libpng 1.6.22 (https://cs.chromium.org/chromium/src/third_party/libpng/README) while the latest release is 1.6.32 (http://www.libpng.org/pub/png/libpng.html).

Besides possible security fixes, there is good potential for performance gains by ignoring some checksums.

This is a blocker for experimenting with the idea. 
 
Blocking: 770795
Cc: scroggo@chromium.org cblume@chromium.org mtklein@chromium.org
Owner: scroggo@chromium.org
Status: Started (was: Untriaged)
I've already started this in https://chromium-review.googlesource.com/c/chromium/src/+/671029. 1.6.32 has a bug, but there is a newer version that fixes it.
Project Member

Comment 4 by bugdroid1@chromium.org, Oct 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5602fef50f7d262cfe960dca7a5be946daa8e347

commit 5602fef50f7d262cfe960dca7a5be946daa8e347
Author: Leon Scroggins III <scroggo@google.com>
Date: Thu Oct 05 16:17:57 2017

Update libpng to 1.6.34

Bug:  761608 
Bug:  771075 

Downloaded from http://libpng.download/src/libpng16

https://github.com/glennrp/libpng/commit/edef058e180be435afd8feebb742a22360a7fa3f
(included in this revision) moved the SSE opts directly into the main
libpng source, so contrib/intel/intel_sse.patch is no longer necessary,
as its changes are already included.

Other changes:
- README.chromium:
  - Update version number.
  - Remove references to cherry-picks from upstream, as the fixes are
    now included without cherry-picks.
  - Remove reference to applying intel_sse.patch, which is no longer
    necessary.
- BUILD.gn:
  - Build the intel code from its new location.
- PNGImageDecoderTest.cpp:
  - Remove unnecessary tests. TestFailureDuringDecode attempted to
    modify a valid PNG file to have an error, and then verified that it
    actually had an error, while leaving the FrameCount unchanged. I do
    not see much value to the test, and the apparently more lenient
    newer libpng no longer considers this modified file to be broken.

Change-Id: I2c7e517403609aed2051b91df47dd9f87f62e1ab
Reviewed-on: https://chromium-review.googlesource.com/671029
Reviewed-by: Leon Scroggins <scroggo@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Leon Scroggins <scroggo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506749}
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoderTest.cpp
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/BUILD.gn
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/LICENSE
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/README
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/README.chromium
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/arm/filter_neon.S
[delete] https://crrev.com/fe862f371864cd02c95f57152c4d9e6d6745cd11/third_party/libpng/contrib/intel/INSTALL
[delete] https://crrev.com/fe862f371864cd02c95f57152c4d9e6d6745cd11/third_party/libpng/contrib/intel/intel_sse.patch
[rename] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/intel/filter_sse2_intrinsics.c
[rename] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/intel/intel_init.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/png.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/png.h
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngconf.h
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngerror.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngget.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pnginfo.h
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngmem.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngpread.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngpriv.h
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngread.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngrio.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngrtran.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngrutil.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngset.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngstruct.h
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngtest.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngtrans.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngwio.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngwrite.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngwtran.c
[modify] https://crrev.com/5602fef50f7d262cfe960dca7a5be946daa8e347/third_party/libpng/pngwutil.c

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0dc539884fd4df44c4255fbf1f70b1a9df60a984

commit 0dc539884fd4df44c4255fbf1f70b1a9df60a984
Author: Leon Scroggins <scroggo@chromium.org>
Date: Fri Oct 06 13:15:04 2017

Revert "Update libpng to 1.6.34"

This reverts commit 5602fef50f7d262cfe960dca7a5be946daa8e347.

Reason for revert: Just to be extra cautious. Branch point is in one week; we can land afterwards to give it some more testing time. Will reland with the name mangling in https://chromium-review.googlesource.com/702694

Original change's description:
> Update libpng to 1.6.34
> 
> Bug:  761608 
> Bug:  771075 
> 
> Downloaded from http://libpng.download/src/libpng16
> 
> https://github.com/glennrp/libpng/commit/edef058e180be435afd8feebb742a22360a7fa3f
> (included in this revision) moved the SSE opts directly into the main
> libpng source, so contrib/intel/intel_sse.patch is no longer necessary,
> as its changes are already included.
> 
> Other changes:
> - README.chromium:
>   - Update version number.
>   - Remove references to cherry-picks from upstream, as the fixes are
>     now included without cherry-picks.
>   - Remove reference to applying intel_sse.patch, which is no longer
>     necessary.
> - BUILD.gn:
>   - Build the intel code from its new location.
> - PNGImageDecoderTest.cpp:
>   - Remove unnecessary tests. TestFailureDuringDecode attempted to
>     modify a valid PNG file to have an error, and then verified that it
>     actually had an error, while leaving the FrameCount unchanged. I do
>     not see much value to the test, and the apparently more lenient
>     newer libpng no longer considers this modified file to be broken.
> 
> Change-Id: I2c7e517403609aed2051b91df47dd9f87f62e1ab
> Reviewed-on: https://chromium-review.googlesource.com/671029
> Reviewed-by: Leon Scroggins <scroggo@chromium.org>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Leon Scroggins <scroggo@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#506749}

TBR=scroggo@chromium.org,noel@chromium.org,mtklein@chromium.org

Change-Id: I75ef427e8dea83819d9dfdafa6bd714c9ab13539
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  761608 ,  771075 
Reviewed-on: https://chromium-review.googlesource.com/704954
Reviewed-by: Leon Scroggins <scroggo@chromium.org>
Commit-Queue: Leon Scroggins <scroggo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#507041}
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoderTest.cpp
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/BUILD.gn
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/LICENSE
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/README
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/README.chromium
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/arm/filter_neon.S
[add] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/contrib/intel/INSTALL
[rename] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/contrib/intel/filter_sse2_intrinsics.c
[rename] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/contrib/intel/intel_init.c
[add] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/contrib/intel/intel_sse.patch
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/png.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/png.h
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngconf.h
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngerror.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngget.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pnginfo.h
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngmem.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngpread.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngpriv.h
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngread.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngrio.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngrtran.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngrutil.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngset.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngstruct.h
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngtest.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngtrans.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngwio.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngwrite.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngwtran.c
[modify] https://crrev.com/0dc539884fd4df44c4255fbf1f70b1a9df60a984/third_party/libpng/pngwutil.c

 Issue 761608  has been merged into this issue.
Uploaded https://chromium-review.googlesource.com/c/chromium/src/+/704209 to reland after the branch, as recommended by noel@
Cc: cavalcan...@gmail.com
Cc: -cavalcan...@gmail.com -mtklein@chromium.org cavalcantii@chromium.org
Cc: mtklein@chromium.org noel@chromium.org
We've now branched, so I'm planning to reland with https://chromium-review.googlesource.com/c/chromium/src/+/704209.
Project Member

Comment 12 by bugdroid1@chromium.org, Oct 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f82653a473f8de5fc86d0f2ecc75f6237e61946b

commit f82653a473f8de5fc86d0f2ecc75f6237e61946b
Author: Leon Scroggins III <scroggo@google.com>
Date: Fri Oct 20 15:13:09 2017

Reland "Update libpng to 1.6.34"

This reverts commit 0dc539884fd4df44c4255fbf1f70b1a9df60a984.

We reverted the update just to be cautious. Now that the branch has
been cut, reland. Original message:
=======================================================================
Bug:  761608 
Bug:  771075 

Downloaded from http://libpng.download/src/libpng16

https://github.com/glennrp/libpng/commit/edef058e180be435afd8feebb742a22360a7fa3f
(included in this revision) moved the SSE opts directly into the main
libpng source, so contrib/intel/intel_sse.patch is no longer necessary,
as its changes are already included.

Other changes:
- README.chromium:
  - Update version number.
  - Remove references to cherry-picks from upstream, as the fixes are
    now included without cherry-picks.
  - Remove reference to applying intel_sse.patch, which is no longer
    necessary.
- BUILD.gn:
  - Build the intel code from its new location.
- PNGImageDecoderTest.cpp:
  - Remove unnecessary tests. TestFailureDuringDecode attempted to
    modify a valid PNG file to have an error, and then verified that it
    actually had an error, while leaving the FrameCount unchanged. I do
    not see much value to the test, and the apparently more lenient
    newer libpng no longer considers this modified file to be broken.
=======================================================================

Also includes name mangling for png_(get/set)_eXIf(_1) from
I11492d3e7cce34e7ba29b6399b45bec75b057948

Change-Id: Ie692badaf88403bc01b4bf52d95fe539f9079df5
Reviewed-on: https://chromium-review.googlesource.com/704209
Reviewed-by: Noel Gordon <noel@chromium.org>
Commit-Queue: Leon Scroggins <scroggo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510438}
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoderTest.cpp
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/BUILD.gn
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/LICENSE
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/README
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/README.chromium
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/arm/filter_neon.S
[delete] https://crrev.com/2767edcdb266aea34a5fb4354a36d84858244fad/third_party/libpng/contrib/intel/INSTALL
[delete] https://crrev.com/2767edcdb266aea34a5fb4354a36d84858244fad/third_party/libpng/contrib/intel/intel_sse.patch
[rename] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/intel/filter_sse2_intrinsics.c
[rename] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/intel/intel_init.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/png.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/png.h
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngconf.h
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngerror.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngget.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pnginfo.h
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngmem.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngpread.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngprefix.h
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngpriv.h
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngread.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngrio.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngrtran.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngrutil.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngset.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngstruct.h
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngtest.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngtrans.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngwio.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngwrite.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngwtran.c
[modify] https://crrev.com/f82653a473f8de5fc86d0f2ecc75f6237e61946b/third_party/libpng/pngwutil.c

Status: Fixed (was: Started)

Sign in to add a comment