From: Sridhar Samudrala Date: Tue, 5 Sep 2006 19:59:11 +0000 (+0200) Subject: Fix sctp_primitive_ABORT() call in sctp_close() X-Git-Tag: v2.6.16.29-rc1~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=809f5560b0718ab0e0e8ba6eabc59ed21db31673;p=thirdparty%2Fkernel%2Fstable.git 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. Adrian Bunk: Ported to 2.6.16. Signed-off-by: Sridhar Samudrala Signed-off-by: David S. Miller Signed-off-by: Adrian Bunk --- diff --git a/net/sctp/socket.c b/net/sctp/socket.c index 04707003ffaed..49f9305710305 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -1243,9 +1243,13 @@ SCTP_STATIC void sctp_close(struct sock *sk, long timeout) sctp_association_free(asoc); } else if (sock_flag(sk, SOCK_LINGER) && - !sk->sk_lingertime) - sctp_primitive_ABORT(asoc, NULL); - else + !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); } else sctp_primitive_SHUTDOWN(asoc, NULL);