]> Cypherpunks repositories - gostls13.git/commit
encoding/gob: prevent a decoder state overflow
authorDaniel Martí <mvdan@mvdan.cc>
Thu, 22 Sep 2022 12:35:08 +0000 (13:35 +0100)
committerDaniel Martí <mvdan@mvdan.cc>
Tue, 4 Oct 2022 13:27:35 +0000 (13:27 +0000)
commitcbd931c9c2705e0e3a44c3b299ac2bd3369f5eb5
tree9b9472303a85f76f9056ab68334f312217b49b79
parent6d8ec893039a39f495c8139012e47754e4518b70
encoding/gob: prevent a decoder state overflow

When decoding a struct, if a positive delta is large enough to overflow
when added to fieldnum, we would panic due to the resulting negative index.

Instead, catch this problem and produce an error like we do with
negative delta integers. If fieldnum ends up being negative or smaller
than state.fieldnum, the addition overflowed.

While here, remove an unnecessary break after an error call,
since those error functions cause a panic.

Fixes #55337.

Change-Id: I7a0e4f43e5c81a703e79c1597e3bb3714cc832c8
Reviewed-on: https://go-review.googlesource.com/c/go/+/432715
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gopher Robot <gobot@golang.org>
src/encoding/gob/decode.go
src/encoding/gob/encoder_test.go