diff --git a/pkg/ueps/reader.go b/pkg/ueps/reader.go index 23f91bd..04a132e 100644 --- a/pkg/ueps/reader.go +++ b/pkg/ueps/reader.go @@ -61,15 +61,25 @@ func ReadAndVerify(reader *bufio.Reader, sharedSecret []byte) (*ParsedPacket, er switch tagType { case TagVersion: - packetHeader.Version = tagValue[0] + if len(tagValue) >= 1 { + packetHeader.Version = tagValue[0] + } case TagCurrentLayer: - packetHeader.CurrentLayer = tagValue[0] + if len(tagValue) >= 1 { + packetHeader.CurrentLayer = tagValue[0] + } case TagTargetLayer: - packetHeader.TargetLayer = tagValue[0] + if len(tagValue) >= 1 { + packetHeader.TargetLayer = tagValue[0] + } case TagIntent: - packetHeader.IntentID = tagValue[0] + if len(tagValue) >= 1 { + packetHeader.IntentID = tagValue[0] + } case TagThreatScore: - packetHeader.ThreatScore = binary.BigEndian.Uint16(tagValue) + if len(tagValue) >= 2 { + packetHeader.ThreatScore = binary.BigEndian.Uint16(tagValue) + } case TagHMAC: hmacSignature = tagValue }