aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2018-12-30 11:37:13 -0500
committerAnders Broman <a.broman58@gmail.com>2018-12-31 08:00:05 +0000
commit36981a653ea60b55f62efea4f1cb07e42687dd37 (patch)
treef8717e4c7caf74520aabd0877d24acfc9cc0e17e /epan/dissectors
parent080ff63a00ad1960bf170c6c9cbfb74f5845931a (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')
-rw-r--r--epan/dissectors/packet-knet.c8
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");