b1047b
diff --git a/epan/dissectors/packet-dcm.c b/epan/dissectors/packet-dcm.c
b1047b
index 1dd8959..bcf613b 100644
b1047b
--- a/epan/dissectors/packet-dcm.c
b1047b
+++ b/epan/dissectors/packet-dcm.c
b1047b
@@ -5697,6 +5697,10 @@ dissect_dcm_tag_value(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, dcm_s
b1047b
     if (pdv->syntax == DCM_EBE)	is_little_endian = FALSE;
b1047b
     else			is_little_endian = TRUE;
b1047b
 
b1047b
+    /* Make sure we have all the bytes of the item; this should throw
b1047b
+       and exception if vl_max is so large that it causes the offset
b1047b
+       to overflow. */
b1047b
+    tvb_ensure_bytes_exist(tvb, offset, vl_max);
b1047b
 
b1047b
     /* ---------------------------------------------------------------------------
b1047b
        Potentially long types. Obey vl_max