diff options
| author | HÃ¥vard Haugen <havard.haugen@gmail.com> | 2015-04-26 23:52:42 +0200 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2015-05-15 16:26:53 +0000 |
| commit | 4302fd0409da5e4f1d71471a6770dacdc3301197 (patch) | |
| tree | c3651ad85b83f1f8446d8f43acefef48b1c77a86 /src/encoding/json/encode.go | |
| parent | 5726af54eb3a52b9446a834991110b945e780e99 (diff) | |
| download | go-4302fd0409da5e4f1d71471a6770dacdc3301197.tar.xz | |
encoding/json: fix decoding of types with '[]byte' as underlying type
All slice types which have elements of kind reflect.Uint8 are marshalled
into base64 for compactness. When decoding such data into a custom type
based on []byte the decoder checked the slice kind instead of the slice
element kind, so no appropriate decoder was found.
Fixed by letting the decoder check slice element kind like the encoder.
This guarantees that already encoded data can still be successfully
decoded.
Fixes #8962.
Change-Id: Ia320d4dc2c6e9e5fe6d8dc15788c81da23d20c4f
Reviewed-on: https://go-review.googlesource.com/9371
Reviewed-by: Peter Waldschmidt <peter@waldschmidt.com>
Reviewed-by: Russ Cox <rsc@golang.org>
Diffstat (limited to 'src/encoding/json/encode.go')
| -rw-r--r-- | src/encoding/json/encode.go | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/src/encoding/json/encode.go b/src/encoding/json/encode.go index 4db9f35e69..7789bb5141 100644 --- a/src/encoding/json/encode.go +++ b/src/encoding/json/encode.go @@ -275,8 +275,6 @@ func (e *encodeState) error(err error) { panic(err) } -var byteSliceType = reflect.TypeOf([]byte(nil)) - func isEmptyValue(v reflect.Value) bool { switch v.Kind() { case reflect.Array, reflect.Map, reflect.Slice, reflect.String: |
