From 7ac476ca0cfa0e0e740a75f3221797ce2d1084c7 Mon Sep 17 00:00:00 2001 From: Juliusz Chroboczek Date: Sun, 8 Jun 2025 19:30:23 +0200 Subject: [PATCH] Don't crash on short RTP packet. --- rtp/rtp.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rtp/rtp.go b/rtp/rtp.go index d5ca0fd..c80b240 100755 --- a/rtp/rtp.go +++ b/rtp/rtp.go @@ -44,6 +44,7 @@ const ( var ( ErrBadVersion = errors.New("bad rtp version header") + ErrTruncatedPacket = errors.New("truncated rtp packet") ErrExtendedHeadersNotSupported = errors.New("rtp extended headers not supported") ) @@ -135,6 +136,9 @@ func (h *Header) Write(b []byte) []byte { // Read extracts an RTP header from a byte slice. func (h *Header) Read(b []byte) error { + if len(b) < 12 { + return ErrTruncatedPacket + } if b[0]>>6 != Version { return ErrBadVersion } else if (b[0]>>4)&1 != 0 {