prevent decoders from emitting corrupted frames (#638)

This commit is contained in:
Alessandro Ros
2024-10-23 21:10:37 +02:00
committed by GitHub
parent f41b196241
commit 508d025097
21 changed files with 647 additions and 13 deletions

View File

@@ -38,6 +38,40 @@ func TestDecode(t *testing.T) {
}
}
func TestDecodeErrorMissingPacket(t *testing.T) {
d := &Decoder{}
err := d.Init()
require.NoError(t, err)
_, err = d.Decode(&rtp.Packet{
Header: rtp.Header{
Version: 2,
Marker: false,
PayloadType: 96,
SequenceNumber: 17645,
SSRC: 0x9dbb7812,
},
Payload: []byte{
0x01, 0x02, 0x0b, 0x77, 0x1a, 0x01, 0x1e, 0x40,
},
})
require.Equal(t, ErrMorePacketsNeeded, err)
_, err = d.Decode(&rtp.Packet{
Header: rtp.Header{
Version: 2,
Marker: false,
PayloadType: 96,
SequenceNumber: 17647,
SSRC: 0x9dbb7812,
},
Payload: []byte{
0x03, 0x02, 0x72, 0xdc, 0x06, 0x7d, 0x2d, 0xe5,
},
})
require.EqualError(t, err, "discarding frame since a RTP packet is missing")
}
func FuzzDecoder(f *testing.F) {
f.Fuzz(func(t *testing.T, a []byte, am bool, b []byte, bm bool) {
d := &Decoder{}