commit | 6f2977906dc22db9d90e4ff5dd008b32ecec7cf6 | [log] [tgz] |
---|---|---|
author | Damien Neil <dneil@google.com> | Wed Jan 29 15:55:53 2020 -0800 |
committer | Damien Neil <dneil@google.com> | Thu Jan 30 00:26:49 2020 +0000 |
tree | af6b7b8e00c854a018d4159503d3e152d87493a5 | |
parent | c70f5d59d1d7dd75d0850f4ac329c5d77a5db39f [diff] |
internal/impl: fix validator bytes field length decoding Missing a bounds check on the first byte. Change-Id: I089fa8dcc1a14d11faca1acba758b6b811b16ac4 Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/216957 Reviewed-by: Joe Tsai <joetsai@google.com>
diff --git a/internal/impl/validate.go b/internal/impl/validate.go index 9e33979..bf5f60d 100644 --- a/internal/impl/validate.go +++ b/internal/impl/validate.go
@@ -414,7 +414,7 @@ continue State case wire.BytesType: var size uint64 - if b[0] < 0x80 { + if len(b) >= 1 && b[0] < 0x80 { size = uint64(b[0]) b = b[1:] } else if len(b) >= 2 && b[1] < 128 {