From c444ec308506463bd4ab3226c6aab55746347780 Mon Sep 17 00:00:00 2001 From: Udalov Max Date: Wed, 3 Jul 2019 23:31:50 +0300 Subject: encoding/binary: make Read return an error when data is not a pointer Make binary.Read return an error when passed `data` argument is not a pointer to a fixed-size value or a slice of fixed-size values. Fixes #32927 Change-Id: I04f48be55fe9b0cc66c983d152407d0e42cbcd95 Reviewed-on: https://go-review.googlesource.com/c/go/+/184957 Reviewed-by: Brad Fitzpatrick --- src/encoding/binary/binary.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/encoding/binary/binary.go') diff --git a/src/encoding/binary/binary.go b/src/encoding/binary/binary.go index 43fa821b83..33066fc77a 100644 --- a/src/encoding/binary/binary.go +++ b/src/encoding/binary/binary.go @@ -219,8 +219,12 @@ func Read(r io.Reader, order ByteOrder, data interface{}) error { for i := range data { data[i] = order.Uint64(bs[8*i:]) } + default: + n = 0 // fast path doesn't apply + } + if n != 0 { + return nil } - return nil } // Fallback to reflect-based decoding. -- cgit v1.3