diff options
Diffstat (limited to '')
-rw-r--r-- | epan/dissectors/packet-teap.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/epan/dissectors/packet-teap.c b/epan/dissectors/packet-teap.c index ac24f8cf..701e3389 100644 --- a/epan/dissectors/packet-teap.c +++ b/epan/dissectors/packet-teap.c @@ -256,6 +256,7 @@ static int dissect_teap_tlv_pac(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 len); static int +// NOLINTNEXTLINE(misc-no-recursion) dissect_pac_attr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset) { guint16 type; @@ -330,17 +331,21 @@ dissect_pac_attr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset } static int +// NOLINTNEXTLINE(misc-no-recursion) dissect_teap_tlv_pac(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 len) { int start_offset = offset; + increment_dissection_depth(pinfo); while (offset - start_offset < len) { offset += dissect_pac_attr(tvb, pinfo, tree, offset); } + decrement_dissection_depth(pinfo); return offset - start_offset; } static int +// NOLINTNEXTLINE(misc-no-recursion) dissect_teap_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, gboolean top) { int start_offset = offset; @@ -393,7 +398,9 @@ dissect_teap_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset if (len > 6) { next_tvb = tvb_new_subset_length(tvb, offset, len - 6); + increment_dissection_depth(pinfo); offset += dissect_teap(next_tvb, pinfo, tlv_tree, NULL); + decrement_dissection_depth(pinfo); } break; @@ -518,6 +525,7 @@ dissect_teap_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset } static int +// NOLINTNEXTLINE(misc-no-recursion) dissect_teap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { proto_tree *ti; |