VOL-4337: Code upgrade for 3/2020 G.988 support and remaining Extended Message Set support

Change-Id: I6c5e1a167216ad9b51e9da89460e9909465ae1bc
diff --git a/mebase.go b/mebase.go
index 41f7a1f..2681078 100644
--- a/mebase.go
+++ b/mebase.go
@@ -67,7 +67,15 @@
 
 // DecodeFromBytes decodes the given bytes into this layer
 func (msg *MeBasePacket) DecodeFromBytes(data []byte, p gopacket.PacketBuilder, contentSize int) error {
-	// Note: Base OMCI frame already checked for frame with at least 10 octets
+	if len(data) < contentSize {
+		p.SetTruncated()
+		layerType := msg.LayerType().String()
+		if msg.Extended {
+			layerType += " (extended)"
+		}
+		return fmt.Errorf("frame header too small. %v header length %v, %v required",
+			layerType, len(data), contentSize)
+	}
 	msg.EntityClass = me.ClassID(binary.BigEndian.Uint16(data[0:]))
 	msg.EntityInstance = binary.BigEndian.Uint16(data[2:])
 	msg.BaseLayer = layers.BaseLayer{Contents: data[:contentSize], Payload: data[contentSize:]}