summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-11-02 19:20:26 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2014-11-02 19:20:26 +0100
commit4cb8c3593bbb884c5c282b1d8502a0930235fe88 (patch)
treedbe50ae637e9266fc19b295049e86e2910e35d08 /net
parentMerge tag 'staging-3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git... (diff)
downloadlinux-4cb8c3593bbb884c5c282b1d8502a0930235fe88.tar.xz
linux-4cb8c3593bbb884c5c282b1d8502a0930235fe88.zip
irda: stop calling sk_prot->disconnect() on connection failure
The sk_prot is irda's own set of protocol handlers, so irda should statically know what that function is anyway, without using an indirect pointer. And as it happens, we know *exactly* what that pointer is statically: it's NULL, because irda doesn't define a disconnect operation. So calling that function is doubly wrong, and will just cause an oops. Reported-by: Martin Lang <mlg.hessigheim@gmail.com> Cc: Samuel Ortiz <samuel@sortiz.org> Cc: David Miller <davem@davemloft.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'net')
-rw-r--r--net/irda/af_irda.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/net/irda/af_irda.c b/net/irda/af_irda.c
index 92fafd485deb..3f3a6cbdceb7 100644
--- a/net/irda/af_irda.c
+++ b/net/irda/af_irda.c
@@ -1064,8 +1064,6 @@ static int irda_connect(struct socket *sock, struct sockaddr *uaddr,
if (sk->sk_state != TCP_ESTABLISHED) {
sock->state = SS_UNCONNECTED;
- if (sk->sk_prot->disconnect(sk, flags))
- sock->state = SS_DISCONNECTING;
err = sock_error(sk);
if (!err)
err = -ECONNRESET;