diff options
-rw-r--r-- | print-sflow.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/print-sflow.c b/print-sflow.c index 68bca017..f17f1ce9 100644 --- a/print-sflow.c +++ b/print-sflow.c @@ -872,6 +872,13 @@ sflow_print(netdissect_options *ndo, tptr = pptr; tlen = len; sflow_datagram = (const struct sflow_datagram_t *)pptr; + if (len < sizeof(struct sflow_datagram_t)) { + ND_PRINT("sFlowv%u", GET_BE_U_4(sflow_datagram->version)); + ND_PRINT(" [length %u < %" PRIsize "]", + len, sizeof(struct sflow_datagram_t)); + nd_print_invalid(ndo); + return; + } ND_TCHECK_SIZE(sflow_datagram); /* |