]> git.baikalelectronics.ru Git - kernel.git/commit
isdn/gigaset: fix non-heap pointer deallocation
authorTilman Schmidt <tilman@imap.cc>
Sat, 11 Oct 2014 11:46:30 +0000 (13:46 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 14 Oct 2014 19:05:34 +0000 (15:05 -0400)
commit4a8665971971a6795a3247ef8d2cd0c3ca42c511
tree05043b6668f823104c3f5eb29451a3b4f0941efd
parente44f825b63d745ef8f198a4a54739451e3d1c4f7
isdn/gigaset: fix non-heap pointer deallocation

at_state structures may be allocated individually or as part of a
cardstate or bc_state structure. The disconnect() function handled
both cases, creating a risk that it might try to deallocate an
at_state structure that had not been allocated individually.
Fix by splitting disconnect() into two variants handling cases
with and without an associated B channel separately, and adding
an explicit check.

Spotted with Coverity.

Signed-off-by: Tilman Schmidt <tilman@imap.cc>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/isdn/gigaset/ev-layer.c