Bläddra i källkod

payload length check

Tobias Begalke 7 år sedan
förälder
incheckning
4990ad476f
1 ändrade filer med 3 tillägg och 0 borttagningar
  1. 3 0
      ajp13.go

+ 3 - 0
ajp13.go

@@ -45,6 +45,9 @@ func Parse(payload []byte) (*AJP13, error) {
 	// the data length
 	a.len = binary.BigEndian.Uint16(payload[2:4])
 
+	if len(payload) < int(a.len+4) {
+		return nil, fmt.Errorf("The payload should be %d bytes long is actually only %d bytes long", a.len+4, len(payload))
+	}
 	data := payload[4 : a.len+4]
 
 	// the request type