소스 검색

payload length check

Tobias Begalke 7 년 전
부모
커밋
4990ad476f
1개의 변경된 파일3개의 추가작업 그리고 0개의 파일을 삭제
  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