aboutsummaryrefslogtreecommitdiff
path: root/src/encoding/json/stream.go
diff options
context:
space:
mode:
authorPeter Waldschmidt <peter@waldschmidt.com>2015-07-27 21:33:53 -0400
committerRuss Cox <rsc@golang.org>2015-07-28 02:51:55 +0000
commit7e70c2468b6db5f4ebfa59714e9c561ba045e41c (patch)
tree7420ae0cdcbf6439fea9a3fc1b1650cf4fe69f74 /src/encoding/json/stream.go
parenta01d90744fe5d12ce8b48e7d3c6e67e954a9fe55 (diff)
downloadgo-7e70c2468b6db5f4ebfa59714e9c561ba045e41c.tar.xz
encoding/json: fix EOF bug decoding HTTP stream
Fixes bug referenced in this thread on golang-dev: https://groups.google.com/d/topic/golang-dev/U4LSpMzL82c/discussion Change-Id: If01a2644863f9e5625dd2f95f9d344bda772e12c Reviewed-on: https://go-review.googlesource.com/12726 Reviewed-by: Russ Cox <rsc@golang.org>
Diffstat (limited to 'src/encoding/json/stream.go')
-rw-r--r--src/encoding/json/stream.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/encoding/json/stream.go b/src/encoding/json/stream.go
index 53e9b0fa9a..3e8fe40268 100644
--- a/src/encoding/json/stream.go
+++ b/src/encoding/json/stream.go
@@ -437,6 +437,7 @@ func (dec *Decoder) More() bool {
}
func (dec *Decoder) peek() (byte, error) {
+ var err error
for {
for i := dec.scanp; i < len(dec.buf); i++ {
c := dec.buf[i]
@@ -446,9 +447,11 @@ func (dec *Decoder) peek() (byte, error) {
dec.scanp = i
return c, nil
}
- if err := dec.refill(); err != nil {
+ // buffer has been scanned, now report any error
+ if err != nil {
return 0, err
}
+ err = dec.refill()
}
}