From: Nigel Tao Date: Tue, 5 Mar 2013 23:08:46 +0000 (+1100) Subject: image/jpeg: for progressive JPEGs, the first SOS segment doesn't X-Git-Tag: go1.1rc2~679 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0d9bf2757e71e64938b02c397d1d6e5666c5a213;p=gostls13.git image/jpeg: for progressive JPEGs, the first SOS segment doesn't necessarily contain all components. Fixes #4975. R=r, minux.ma, bradfitz CC=golang-dev https://golang.org/cl/7469043 --- diff --git a/src/pkg/image/jpeg/scan.go b/src/pkg/image/jpeg/scan.go index e3ae8ae441..a69ed17489 100644 --- a/src/pkg/image/jpeg/scan.go +++ b/src/pkg/image/jpeg/scan.go @@ -109,9 +109,11 @@ func (d *decoder) processSOS(n int) error { myy := (d.height + 8*v0 - 1) / (8 * v0) if d.img1 == nil && d.img3 == nil { d.makeImg(h0, v0, mxx, myy) - if d.progressive { - for i := 0; i < nComp; i++ { - compIndex := scan[i].compIndex + } + if d.progressive { + for i := 0; i < nComp; i++ { + compIndex := scan[i].compIndex + if d.progCoeffs[compIndex] == nil { d.progCoeffs[compIndex] = make([]block, mxx*myy*d.comp[compIndex].h*d.comp[compIndex].v) } }