summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-dhcpv6.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-dhcpv6.c')
-rw-r--r--epan/dissectors/packet-dhcpv6.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/epan/dissectors/packet-dhcpv6.c b/epan/dissectors/packet-dhcpv6.c
index 1ca4ac3..bbbbff8 100644
--- a/epan/dissectors/packet-dhcpv6.c
+++ b/epan/dissectors/packet-dhcpv6.c
@@ -1843,6 +1843,7 @@ cablelabs_fmt_dpoe_server_version( gchar *result, guint32 revision )
/* Returns the number of bytes consumed by this option. */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dhcpv6_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree,
int off, int eoff, gboolean *at_end, int protocol, hopcount_info hpi, guint8 msgtype)
{
@@ -1883,6 +1884,8 @@ dhcpv6_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree,
proto_tree_add_item(subtree, hf_option_length, tvb, off + 2, 2, ENC_BIG_ENDIAN);
off += 4;
+ increment_dissection_depth(pinfo);
+
switch (opttype) {
case OPTION_CLIENTID:
if (optlen > 0) {
@@ -2949,12 +2952,15 @@ dhcpv6_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree,
break;
}
+ decrement_dissection_depth(pinfo);
+
return 4 + optlen;
}
-/* May be called recursively */
+/* May be called recursively via dhcpv6_option */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_dhcpv6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
int off, int eoff, hopcount_info hpi)
{