EricssonResearch / EricssonResearch/scream

SIGSEGV when receving rtcp with not known ssrc

Open
#19 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Shell
Stars
217
Forks
69
PR merge metrics
No merged PRs in 30d

Description

I've got this Segmentation Fault, when I restart my sender fast and keep the receiver running.
Then the receiver sending feedback with for a SSRC from the old session.

#0 0x00007ffff2dad58c in ScreamTx::Stream::isRtpQueueDiscard (this=0x0) at ScreamTx.cpp:2008
#1 0x00007ffff2dac990 in ScreamTx::Stream::getTargetBitrate (this=0x0) at ScreamTx.cpp:1749
#2 0x00007ffff2da987f in ScreamTx::getTargetBitrate (this=0x5555559aa330, ssrc=3462544249) at ScreamTx.cpp:885
#3 0x00007ffff2da6327 in on_receiving_rtcp (session=0x555555bc61a0, buffer=0x7fffdc0279a0, early=1436201072, object=0x7ffff0eec030)
at gstgscreamtx.cpp:307

My hotfix is to return 0 in ScreamTx::Stream::getTargetBitrate if I couldn't find the stream by SSRC.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at the RTCP handling path in gstgscreamtx.cpp:307 and follow ScreamTx.cpp:885 into getTargetBitrate and the stream lookup, using the reported ScreamTx.cpp lines as the initial context. Reproduce the rapid sender restart with feedback for the old SSRC, then verify that stale-SSRC RTCP no longer causes a segmentation fault.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
networking
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.