diff options
author | Michael Mann <mmann78@netscape.net> | 2018-12-30 11:37:13 -0500 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-12-31 08:00:05 +0000 |
commit | 36981a653ea60b55f62efea4f1cb07e42687dd37 (patch) | |
tree | f8717e4c7caf74520aabd0877d24acfc9cc0e17e /epan/dissectors/packet-knet.c | |
parent | 080ff63a00ad1960bf170c6c9cbfb74f5845931a (diff) |
KNET: Validate the length field before claiming packet
Heuristic is weak, but length of packet should be non-zero.
Change-Id: I68d6d85092c84d5d421731be3ada008fe7a5b06f
Reviewed-on: https://code.wireshark.org/review/31266
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-knet.c')
-rw-r--r-- | epan/dissectors/packet-knet.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/epan/dissectors/packet-knet.c b/epan/dissectors/packet-knet.c index 05a9d787e9..57842998bf 100644 --- a/epan/dissectors/packet-knet.c +++ b/epan/dissectors/packet-knet.c @@ -546,6 +546,14 @@ dissect_knet_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* static int dissect_knet_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) { + //Sanity check the length field + if (tvb_reported_length(tvb) < 2) + return 0; + + int offset = 0; + if (dissect_content_length_vle(tvb, &offset, NULL) == 0) + return 0; + col_clear(pinfo->cinfo, COL_INFO); col_set_str(pinfo->cinfo, COL_PROTOCOL, "KNET"); |