aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-kink.c
diff options
context:
space:
mode:
authorgerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>2005-03-24 21:17:08 +0000
committergerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>2005-03-24 21:17:08 +0000
commit462dfc3e966e2aa87557154ab7b042c6b7106eaa (patch)
tree2c6b84b69cede909630cf9268d692139d88f7710 /epan/dissectors/packet-kink.c
parent10d0d95ff26e8d5f5d55537d6df217ad3562f29a (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.c37
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);
}
}