summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rtls.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-26 17:44:18 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-26 17:44:18 +0000
commit1da76b3706a6c9bd41bf8f219d7c97de5e1e5c7f (patch)
tree9930fb4bb87cd6037f60efff9656f967121c8c2d /epan/dissectors/packet-rtls.c
parentAdding debian version 4.2.2-1.1. (diff)
downloadwireshark-1da76b3706a6c9bd41bf8f219d7c97de5e1e5c7f.tar.xz
wireshark-1da76b3706a6c9bd41bf8f219d7c97de5e1e5c7f.zip
Merging upstream version 4.2.4.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--epan/dissectors/packet-rtls.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/epan/dissectors/packet-rtls.c b/epan/dissectors/packet-rtls.c
index 95c56819..af4b9b4b 100644
--- a/epan/dissectors/packet-rtls.c
+++ b/epan/dissectors/packet-rtls.c
@@ -212,6 +212,7 @@ dissect_rtls_header(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *rtls_tree
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_rtls_message_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *rtls_tree, guint offset, guint type)
{
proto_item *ti_rssi;
@@ -361,6 +362,7 @@ hf_rtls_nack_flags, ett_rtls_nack_flags, rtls_nack_flags, ENC_BIG_ENDIAN, BMT_NO
offset = dissect_rtls_header(tvb, pinfo, sub_tree, offset, &data_length);
+ // We recurse here, but we'll run out of packet before we run out of stack.
offset = dissect_rtls_message_type(tvb, pinfo, sub_tree, offset, type);
proto_item_set_len(sub_tree, data_length + 16);
@@ -774,6 +776,7 @@ proto_register_rtls(void)
void
proto_reg_handoff_rtls(void)
{
+ // If this is ever streamed (transported over TCP) we need to add recursion checks
dissector_add_for_decode_as_with_preference("udp.port", rtls_handle);
}