diff options
author | Sridhar Samudrala <sri@us.ibm.com> | 2006-08-28 13:53:01 -0700 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-08-29 21:22:13 -0700 |
commit | b9ac86727fc02cc7117ef3fe518a4d51cd573c82 (patch) | |
tree | b621339f1336ced4315b832df229a2880491f3e3 /net/sctp | |
parent | dc709bd190c130b299ac19d596594256265c042a (diff) | |
download | op-kernel-dev-b9ac86727fc02cc7117ef3fe518a4d51cd573c82.zip op-kernel-dev-b9ac86727fc02cc7117ef3fe518a4d51cd573c82.tar.gz |
[SCTP]: Fix sctp_primitive_ABORT() call in sctp_close().
With the recent fix, the callers of sctp_primitive_ABORT()
need to create an ABORT chunk and pass it as an argument rather
than msghdr that was passed earlier.
Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp')
-rw-r--r-- | net/sctp/socket.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index fde3f55..dab1594 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -1289,9 +1289,13 @@ SCTP_STATIC void sctp_close(struct sock *sk, long timeout) } } - if (sock_flag(sk, SOCK_LINGER) && !sk->sk_lingertime) - sctp_primitive_ABORT(asoc, NULL); - else + if (sock_flag(sk, SOCK_LINGER) && !sk->sk_lingertime) { + struct sctp_chunk *chunk; + + chunk = sctp_make_abort_user(asoc, NULL, 0); + if (chunk) + sctp_primitive_ABORT(asoc, chunk); + } else sctp_primitive_SHUTDOWN(asoc, NULL); } |