Check Kafka header size and fail-fast

This commit is contained in:
M. Mert Yildiran
2021-08-26 00:12:34 +03:00
parent d7a5af34a4
commit 802ce3644d
2 changed files with 8 additions and 0 deletions

View File

@@ -25,6 +25,10 @@ func ReadRequest(r io.Reader, tcpID *api.TcpID) (apiKey ApiKey, apiVersion int16
return 0, 0, fmt.Errorf("A Kafka message cannot be bigger than 1MB")
}
if size < 8 {
return 0, 0, fmt.Errorf("A Kafka request header cannot be smaller than 8 bytes")
}
if err = d.err; err != nil {
err = dontExpectEOF(err)
return 0, 0, err

View File

@@ -23,6 +23,10 @@ func ReadResponse(r io.Reader, tcpID *api.TcpID, emitter api.Emitter) (err error
return fmt.Errorf("A Kafka message cannot be bigger than 1MB")
}
if size < 4 {
return fmt.Errorf("A Kafka response header cannot be smaller than 8 bytes")
}
if err = d.err; err != nil {
err = dontExpectEOF(err)
return err