From: Dmitry Chestnykh Date: Wed, 4 Apr 2012 13:52:42 +0000 (-0400) Subject: [release-branch.go1] encoding/ascii85: fix panic caused by special case X-Git-Tag: go1.0.1~44 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=d98b9dac03eda5db7352a0fa634a29162226bfea;p=gostls13.git [release-branch.go1] encoding/ascii85: fix panic caused by special case ««« backport b127df6df1ab encoding/ascii85: fix panic caused by special case Special case for encoding 4 zeros as 'z' didn't update source slice, causing 'index out of bounds' panic in destination slice. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5970078 »»» --- diff --git a/src/pkg/encoding/ascii85/ascii85.go b/src/pkg/encoding/ascii85/ascii85.go index 7d004b5e5d..705022792a 100644 --- a/src/pkg/encoding/ascii85/ascii85.go +++ b/src/pkg/encoding/ascii85/ascii85.go @@ -57,6 +57,7 @@ func Encode(dst, src []byte) int { if v == 0 && len(src) >= 4 { dst[0] = 'z' dst = dst[1:] + src = src[4:] n++ continue } diff --git a/src/pkg/encoding/ascii85/ascii85_test.go b/src/pkg/encoding/ascii85/ascii85_test.go index 70e67d8b06..42cf7e80e1 100644 --- a/src/pkg/encoding/ascii85/ascii85_test.go +++ b/src/pkg/encoding/ascii85/ascii85_test.go @@ -28,6 +28,11 @@ var pairs = []testpair{ "l(DIduD.RTpAKYo'+CT/5+Cei#DII?(E,9)oF*2M7/c\n", }, + // Special case when shortening !!!!! to z. + { + "\000\000\000\000", + "z", + }, } var bigtest = pairs[len(pairs)-1]