|
|
@@ -136,10 +136,14 @@ func (rd *realDecoder) getInt32Array() ([]int32, error) {
|
|
|
return nil, InsufficientData
|
|
|
}
|
|
|
|
|
|
- if n <= 0 {
|
|
|
+ if n == 0 {
|
|
|
return nil, nil
|
|
|
}
|
|
|
|
|
|
+ if n < 0 {
|
|
|
+ return nil, DecodingError
|
|
|
+ }
|
|
|
+
|
|
|
ret := make([]int32, n)
|
|
|
for i := range ret {
|
|
|
ret[i] = int32(binary.BigEndian.Uint32(rd.raw[rd.off:]))
|
|
|
@@ -161,10 +165,14 @@ func (rd *realDecoder) getInt64Array() ([]int64, error) {
|
|
|
return nil, InsufficientData
|
|
|
}
|
|
|
|
|
|
- if n <= 0 {
|
|
|
+ if n == 0 {
|
|
|
return nil, nil
|
|
|
}
|
|
|
|
|
|
+ if n < 0 {
|
|
|
+ return nil, DecodingError
|
|
|
+ }
|
|
|
+
|
|
|
ret := make([]int64, n)
|
|
|
for i := range ret {
|
|
|
ret[i] = int64(binary.BigEndian.Uint64(rd.raw[rd.off:]))
|