THRIFT-3379 Potential out of range panic in Go JSON protocols
Client: Go
Patch: Nobuaki Sukegawa <nsukeg@gmail.com>
This closes #646
diff --git a/lib/go/thrift/json_protocol.go b/lib/go/thrift/json_protocol.go
index 669a7bd..ec549b7 100644
--- a/lib/go/thrift/json_protocol.go
+++ b/lib/go/thrift/json_protocol.go
@@ -387,7 +387,7 @@
if err != nil {
return v, err
}
- } else if len(f) >= 0 && f[0] == JSON_NULL[0] {
+ } else if len(f) > 0 && f[0] == JSON_NULL[0] {
b := make([]byte, len(JSON_NULL))
_, err := p.reader.Read(b)
if err != nil {
@@ -417,7 +417,7 @@
if err != nil {
return v, err
}
- } else if len(f) >= 0 && f[0] == JSON_NULL[0] {
+ } else if len(f) > 0 && f[0] == JSON_NULL[0] {
b := make([]byte, len(JSON_NULL))
_, err := p.reader.Read(b)
if err != nil {
diff --git a/lib/go/thrift/simple_json_protocol.go b/lib/go/thrift/simple_json_protocol.go
index d30e2bc..e739be9 100644
--- a/lib/go/thrift/simple_json_protocol.go
+++ b/lib/go/thrift/simple_json_protocol.go
@@ -501,7 +501,7 @@
if err != nil {
return v, err
}
- } else if len(f) >= 0 && f[0] == JSON_NULL[0] {
+ } else if len(f) > 0 && f[0] == JSON_NULL[0] {
b := make([]byte, len(JSON_NULL))
_, err := p.reader.Read(b)
if err != nil {
@@ -531,7 +531,7 @@
if err != nil {
return v, err
}
- } else if len(f) >= 0 && f[0] == JSON_NULL[0] {
+ } else if len(f) > 0 && f[0] == JSON_NULL[0] {
b := make([]byte, len(JSON_NULL))
_, err := p.reader.Read(b)
if err != nil {