diff options
-rw-r--r-- | epan/dissectors/packet-openflow_v6.c | 10 |
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; |