diff --git a/broker.go b/broker.go index eb5bc0bf8..6bdea3869 100644 --- a/broker.go +++ b/broker.go @@ -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 } diff --git a/fetch_response.go b/fetch_response.go index 1ac543921..840808d68 100644 --- a/fetch_response.go +++ b/fetch_response.go @@ -22,6 +22,9 @@ func (pr *FetchResponseBlock) decode(pd packetDecoder) (err error) { if err != nil { return err } + if msgSetSize < 0 { + return PacketDecodingError{"invalid message set size"} + } msgSetDecoder, err := pd.getSubset(int(msgSetSize)) if err != nil {