Add maximum to received frame streams frames.

This commit is contained in:
Ralph Dolmans 2020-07-14 14:29:09 +02:00
parent d4bcfbe996
commit c00a5d0723

View file

@ -69,6 +69,9 @@
/** the msec to wait for reconnect slow, to stop busy spinning on reconnect */
#define DTIO_RECONNECT_TIMEOUT_SLOW 1000
/** maximum length of received frame */
#define DTIO_RECV_FRAME_MAX_LEN 1000
struct stop_flush_info;
/** DTIO command channel commands */
enum {
@ -1031,6 +1034,12 @@ static int dtio_read_accept_frame(struct dt_io_thread* dtio)
continue;
}
dtio->read_frame.frame_len = ntohl(dtio->read_frame.frame_len);
if(dtio->read_frame.frame_len > DTIO_RECV_FRAME_MAX_LEN) {
verbose(VERB_OPS, "dnstap: received frame exceeds max "
"length, capped to %d bytes",
DTIO_RECV_FRAME_MAX_LEN);
dtio->read_frame.frame_len = DTIO_RECV_FRAME_MAX_LEN;
}
dtio->read_frame.buf = calloc(1, dtio->read_frame.frame_len);
dtio->read_frame.buf_cap = dtio->read_frame.frame_len;
if(!dtio->read_frame.buf) {