AST-2017-004: chan_skinny: Add EOF check in skinny_session
authorGeorge Joseph <gjoseph@digium.com>
Thu, 13 Apr 2017 16:14:48 +0000 (10:14 -0600)
committerMatthew Fredrickson <creslin@digium.com>
Fri, 19 May 2017 16:19:09 +0000 (11:19 -0500)
commit949e9147bfed119fb04cadd2b6916fe9bfc1d9b0
treee02aaa3bbacaa4190bdd6da134b91e0cfc9ab2b8
parente74c48a46fd65a02ec98440b789ebebd2d8ed1d1
AST-2017-004: chan_skinny:  Add EOF check in skinny_session

The while(1) loop in skinny_session wasn't checking for EOF so
a packet that was longer than a header but still truncated
would spin the while loop infinitely.  Not only does this
permanently tie up a thread and drive a core to 100% utilization,
the call of ast_log() in such a tight loop eats all available
process memory.

Added poll with timeout to top of read loop

ASTERISK-26940 #close
Reported-by: Sandro Gauci

Change-Id: I2ce65f3c5cb24b4943a9f75b64d545a1e2cd2898
channels/chan_skinny.c