aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDario Lombardo <lomato@gmail.com>2022-01-13 10:14:54 +0100
committerA Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org>2022-01-13 14:53:13 +0000
commit445b3f7eaa0690715f040c08fbb942ba1f57ca0c (patch)
tree772ba0d2e6b3a6c111da99eb4193e219b30826f2
parentc427b81aa28e412220c36a0bde118a1be34ff975 (diff)
openflow_v6: add one more sanity check.
Ref: #17847.
-rw-r--r--epan/dissectors/packet-openflow_v6.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/epan/dissectors/packet-openflow_v6.c b/epan/dissectors/packet-openflow_v6.c
index f381e46a7c..abff32a7c4 100644
--- a/epan/dissectors/packet-openflow_v6.c
+++ b/epan/dissectors/packet-openflow_v6.c
@@ -5555,6 +5555,11 @@ dissect_openflow_queue_desc_prop_v6(tvbuff_t *tvb, packet_info *pinfo _U_, proto
break;
case OFPQDPT_EXPERIMENTER:
+ if (prop_len <= 16) {
+ expert_add_info(pinfo, ti, &ei_openflow_v6_length_too_short);
+ offset = length;
+ break;
+ }
/* uint32_t experimenter; */
proto_tree_add_item(prop_tree, hf_openflow_v6_queue_desc_prop_experimenter_experimenter, tvb, offset, 4, ENC_BIG_ENDIAN);
offset+=4;
@@ -5570,6 +5575,11 @@ dissect_openflow_queue_desc_prop_v6(tvbuff_t *tvb, packet_info *pinfo _U_, proto
break;
default:
+ if (prop_len <= 8) {
+ expert_add_info(pinfo, ti, &ei_openflow_v6_length_too_short);
+ offset = length;
+ break;
+ }
proto_tree_add_expert_format(prop_tree, pinfo, &ei_openflow_v6_queue_desc_prop_undecoded,
tvb, offset, prop_len - 8, "Unknown queue property body.");
offset+=prop_len-8;