clock_thread() sleep deeply after illegal/malformed RTP packages received

XD
Xiaoming Deng
Tue, May 9, 2017 8:45 AM

Hi,

We encountered a critical clock_thread() stuck/blocked issue, the render
was starving and the call was not able to reset. Moreover, It prevent the
pjsip stack from quitting.

This issue was caused by receiving illegal/malformed RTP packages, which
triggered a pjmedia_clock_modify() and got a massive clock interval.
clock_thread() hence fell into a deep sleep.

pjmedia_clock_modify() should validate the result calculated from the RTP
param and ignore the values more than max_jump.

--
Deng Xiaoming
dengxiaoming@gmail.com

Hi, We encountered a critical clock_thread() stuck/blocked issue, the render was starving and the call was not able to reset. Moreover, It prevent the pjsip stack from quitting. This issue was caused by receiving illegal/malformed RTP packages, which triggered a pjmedia_clock_modify() and got a massive clock interval. clock_thread() hence fell into a deep sleep. pjmedia_clock_modify() should validate the result calculated from the RTP param and ignore the values more than max_jump. -- Deng Xiaoming dengxiaoming@gmail.com