diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-11-02 13:20:26 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-11-02 13:20:26 -0500 |
commit | 4cb8c3593bbb884c5c282b1d8502a0930235fe88 (patch) | |
tree | dbe50ae637e9266fc19b295049e86e2910e35d08 /net/irda | |
parent | 12d7aacab56e9ef185c3a5512e867bfd3a9504e4 (diff) |
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/irda')
-rw-r--r-- | net/irda/af_irda.c | 2 |
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, | |||
1064 | 1064 | ||
1065 | if (sk->sk_state != TCP_ESTABLISHED) { | 1065 | if (sk->sk_state != TCP_ESTABLISHED) { |
1066 | sock->state = SS_UNCONNECTED; | 1066 | sock->state = SS_UNCONNECTED; |
1067 | if (sk->sk_prot->disconnect(sk, flags)) | ||
1068 | sock->state = SS_DISCONNECTING; | ||
1069 | err = sock_error(sk); | 1067 | err = sock_error(sk); |
1070 | if (!err) | 1068 | if (!err) |
1071 | err = -ECONNRESET; | 1069 | err = -ECONNRESET; |