AST-2012-008: Fix remote crash vulnerability in chan_skinny
authorMatthew Jordan <mjordan@digium.com>
Tue, 29 May 2012 18:40:26 +0000 (18:40 +0000)
committerMatthew Jordan <mjordan@digium.com>
Tue, 29 May 2012 18:40:26 +0000 (18:40 +0000)
commit94187aafc0953c19e738c6f08b0c6c77ee63170c
tree7fc401e75b15e88a32add8642bcb42e8ef6f8866
parent2d418b596cee6c1632e8a0f3e07a2e345dc3c98d
AST-2012-008: Fix remote crash vulnerability in chan_skinny

When a skinny session is unregistered, the corresponding device pointer is set
to NULL in the channel private data.  If the client was not in the on-hook state
at the time the connection was closed, the device pointer can later be
dereferened if a message or channel event attempts to use a line's pointer to
said device.

The patches prevent this from occurring by checking the line's pointer in
message handlers and channel callbacks that can fire after an unregistration
attempt.

(closes issue ASTERISK-19905)
Reported by: Christoph Hebeisen
Tested by: mjordan, Damien Wedhorn
Patches:
  AST-2012-008-1.8.diff uploaded by mjordan (license 6283)
  AST-2012-008-10.diff uploaded by mjordan (licesen 6283)
........

Merged revisions 367844 from http://svn.asterisk.org/svn/asterisk/branches/10

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@367845 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_skinny.c