aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-pim.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-pim.c')
-rw-r--r--epan/dissectors/packet-pim.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/epan/dissectors/packet-pim.c b/epan/dissectors/packet-pim.c
index a492b291d8..9c289a5fe2 100644
--- a/epan/dissectors/packet-pim.c
+++ b/epan/dissectors/packet-pim.c
@@ -374,7 +374,8 @@ dissect_pimv1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
pim_length = length;
}
- if (!pinfo->fragmented && length >= pim_length) {
+ if (!pinfo->fragmented && length >= pim_length &&
+ tvb_captured_length(tvb) >= pim_length) {
/*
* The packet isn't part of a fragmented datagram and isn't
* truncated, so we can checksum it.
@@ -864,7 +865,8 @@ dissect_pim(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
*/
pim_length = length;
}
- if (!pinfo->fragmented && length >= pim_length) {
+ if (!pinfo->fragmented && length >= pim_length &&
+ tvb_captured_length(tvb) >= pim_length) {
/*
* The packet isn't part of a fragmented datagram and isn't
* truncated, so we can checksum it.