Browse Source

Merge pull request #523 from Shopify/fuzz-fixes

Fix two decoding bugs found by go-fuzz
Evan Huus 9 years ago
parent
commit
3a50f2ca6a
2 changed files with 7 additions and 1 deletions
  1. 4 1
      broker.go
  2. 3 0
      fetch_response.go

+ 4 - 1
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
 }

+ 3 - 0
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 {