netdev
[Top] [All Lists]

Re: [PATCH] linux 2.9.10-rc1: Fix oops in unix_dgram_sendmsg when using

To: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [PATCH] linux 2.9.10-rc1: Fix oops in unix_dgram_sendmsg when using SELinux and SOCK_SEQPACKET
From: James Morris <jmorris@xxxxxxxxxx>
Date: Fri, 19 Nov 2004 11:24:03 -0500 (EST)
Cc: Ross Kendall Axe <ross.axe@xxxxxxxxxxxxxxxx>, <netdev@xxxxxxxxxxx>, Stephen Smalley <sds@xxxxxxxxxxxxxx>, lkml <linux-kernel@xxxxxxxxxxxxxxx>, Chris Wright <chrisw@xxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxxxxx>
In-reply-to: <1100864358.8127.5.camel@localhost.localdomain>
Sender: netdev-bounce@xxxxxxxxxxx
On Fri, 19 Nov 2004, Alan Cox wrote:

> Looks right to me, the ECONNRESET is no longer being lost.

Ok, here is a relative patch for Dave.

Please apply.

Signed-off-by: James Morris <jmorris@xxxxxxxxxx>

---

diff -purN -X dontdiff linux-2.6.10-rc2.w2/net/unix/af_unix.c 
linux-2.6.10-rc2.w3/net/unix/af_unix.c
--- linux-2.6.10-rc2.w2/net/unix/af_unix.c      2004-11-18 12:09:44.000000000 
-0500
+++ linux-2.6.10-rc2.w3/net/unix/af_unix.c      2004-11-18 21:54:12.000000000 
-0500
@@ -1513,13 +1513,18 @@ out_err:
 static int unix_seqpacket_sendmsg(struct kiocb *kiocb, struct socket *sock,
                                  struct msghdr *msg, size_t len)
 {
+       int err;
        struct sock *sk = sock->sk;
        
+       err = sock_error(sk);
+       if (err)
+               return err;
+
        if (sk->sk_state != TCP_ESTABLISHED)
                return -ENOTCONN;
 
-       if (msg->msg_name || msg->msg_namelen)
-               return -EINVAL;
+       if (msg->msg_namelen)
+               msg->msg_namelen = 0;
 
        return unix_dgram_sendmsg(kiocb, sock, msg, len);
 }


<Prev in Thread] Current Thread [Next in Thread>