Fix two decoding bugs found by go-fuzz
@@ -312,7 +312,10 @@ func (b *Broker) decode(pd packetDecoder) (err error) {
return err
}
- b.addr = fmt.Sprint(host, ":", port)
+ b.addr = net.JoinHostPort(host, fmt.Sprint(port))
+ if _, _, err := net.SplitHostPort(b.addr); err != nil {
+ return err
+ }
return nil
@@ -22,6 +22,9 @@ func (pr *FetchResponseBlock) decode(pd packetDecoder) (err error) {
if err != nil {
+ if msgSetSize < 0 {
+ return PacketDecodingError{"invalid message set size"}
msgSetDecoder, err := pd.getSubset(int(msgSetSize))