Looking at packet.go:190, the error message doesn't match the if statement. If I change the if statement to match the error message (len(buf) < extensionPayloadEnd) then everything works again.
The problem is that I'm not sure entirely sure it should work. From what I can tell, our keep-alive packet follows the specification but this is fairly new territory for me so I am less than confident. From my perspective this looks like a bug in pion/rtp, but maybe our packet is simply wrong.
What did you do?
I upgraded pion/rtp from v1.7.4 to v1.8.6 and ran our unit tests.
What did you expect?
I expected the unmarshal to work as in previous versions of the rtp package.
What happened?
The unmarshal failed with the following confusing error message:
size 20 < 20: RTP header size insufficient for extension
Your environment.
The following test use a packet that was previously unmarshalled without issue:
The change that causes the error was made in this commit: https://github.com/pion/rtp/commit/7dc2af56736b663e76f1400ba403532ba590bceb (
v1.8.3
?).Looking at packet.go:190, the error message doesn't match the if statement. If I change the if statement to match the error message (
len(buf) < extensionPayloadEnd
) then everything works again.The problem is that I'm not sure entirely sure it should work. From what I can tell, our keep-alive packet follows the specification but this is fairly new territory for me so I am less than confident. From my perspective this looks like a bug in pion/rtp, but maybe our packet is simply wrong.
What did you do?
I upgraded pion/rtp from
v1.7.4
tov1.8.6
and ran our unit tests.What did you expect?
I expected the unmarshal to work as in previous versions of the rtp package.
What happened?
The unmarshal failed with the following confusing error message: