diff options
author | gerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-03-24 21:17:08 +0000 |
---|---|---|
committer | gerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-03-24 21:17:08 +0000 |
commit | 462dfc3e966e2aa87557154ab7b042c6b7106eaa (patch) | |
tree | 2c6b84b69cede909630cf9268d692139d88f7710 /epan/dissectors/packet-kink.c | |
parent | 10d0d95ff26e8d5f5d55537d6df217ad3562f29a (diff) |
Add a few more payload length checks.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@13896 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-kink.c')
-rw-r--r-- | epan/dissectors/packet-kink.c | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/epan/dissectors/packet-kink.c b/epan/dissectors/packet-kink.c index e19127e316..fc55bc12f0 100644 --- a/epan/dissectors/packet-kink.c +++ b/epan/dissectors/packet-kink.c @@ -371,7 +371,10 @@ dissect_payload_kink_ap_req(packet_info *pinfo, tvbuff_t *tvb, int offset, proto payload_length += (PADDING - (payload_length % PADDING)); } offset = start_payload_offset + payload_length; - control_payload(pinfo, tvb, offset, next_payload, tree); /* Recur control_payload() */ + + if(payload_length > 0) { + control_payload(pinfo, tvb, offset, next_payload, tree); /* Recur control_payload() */ + } } @@ -437,7 +440,10 @@ dissect_payload_kink_ap_rep(packet_info *pinfo, tvbuff_t *tvb, int offset, proto payload_length += (PADDING - (payload_length % PADDING)); } offset = start_payload_offset + payload_length; - control_payload(pinfo, tvb, offset, next_payload, tree); /* Recur control_payload() */ + + if(payload_length > 0) { + control_payload(pinfo, tvb, offset, next_payload, tree); /* Recur control_payload() */ + } } static void @@ -488,7 +494,10 @@ dissect_payload_kink_krb_error(packet_info *pinfo, tvbuff_t *tvb, int offset, pr payload_length += (PADDING - (payload_length % PADDING)); } offset = start_payload_offset + payload_length; - control_payload(pinfo, tvb, offset, next_payload, tree); /* Recur control_payload() */ + + if(payload_length > 0) { + control_payload(pinfo, tvb, offset, next_payload, tree); /* Recur control_payload() */ + } } static void @@ -532,7 +541,10 @@ dissect_payload_kink_tgt_req(packet_info *pinfo, tvbuff_t *tvb, int offset, prot payload_length += (PADDING - (payload_length % PADDING)); } offset = start_payload_offset + payload_length; - control_payload(pinfo, tvb, offset, next_payload, tree); /* Recur control_payload() */ + + if(payload_length > 0) { + control_payload(pinfo, tvb, offset, next_payload, tree); /* Recur control_payload() */ + } } static void @@ -591,7 +603,10 @@ dissect_payload_kink_tgt_rep(packet_info *pinfo, tvbuff_t *tvb, int offset, prot payload_length += (PADDING - (payload_length % PADDING)); } offset = start_payload_offset + payload_length; - control_payload(pinfo, tvb, offset, next_payload, tree); /* Recur control_payload() */ + + if(payload_length > 0) { + control_payload(pinfo, tvb, offset, next_payload, tree); /* Recur control_payload() */ + } } static void @@ -661,7 +676,10 @@ dissect_payload_kink_isakmp(packet_info *pinfo, tvbuff_t *tvb, int offset, proto payload_length += (PADDING - (payload_length % PADDING)); } offset = start_payload_offset + payload_length; - control_payload(pinfo, tvb, offset, next_payload, tree); /* Recur control_payload() */ + + if(payload_length > 0) { + control_payload(pinfo, tvb, offset, next_payload, tree); /* Recur control_payload() */ + } } static void @@ -717,7 +735,10 @@ dissect_payload_kink_encrypt(packet_info *pinfo, tvbuff_t *tvb, int offset, prot payload_length += (PADDING - (payload_length % PADDING)); } offset = start_payload_offset + payload_length; - control_payload(pinfo, tvb, offset, next_payload, tree); /* Recur control_payload() */ + + if(payload_length > 0) { + control_payload(pinfo, tvb, offset, next_payload, tree); /* Recur control_payload() */ + } } static void @@ -827,7 +848,7 @@ dissect_payload_kink_not_defined(packet_info *pinfo, tvbuff_t *tvb, int offset, offset = start_payload_offset + payload_length; /* XXX - prevent an endless loop if payload_length is 0, don't know the correct way to handle this! */ - if(payload_length != 0) { + if(payload_length > 0) { control_payload(pinfo, tvb, offset, next_payload, tree); } } |