PL3069
authorMarc Fiuczynski <mef@cs.princeton.edu>
Tue, 30 Nov 2004 15:59:12 +0000 (15:59 +0000)
committerMarc Fiuczynski <mef@cs.princeton.edu>
Tue, 30 Nov 2004 15:59:12 +0000 (15:59 +0000)
Fixed memory leak of skbuff.  Requires changes to accurately do statistics
and some additional cosmetic changes.  But this should be sufficient for
the next release candidate.

include/net/sock.h

index 0d3da11..1f1a1ed 100644 (file)
@@ -1086,8 +1086,11 @@ static inline int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
         * packet.
         */
        if (inet_stream_ops.bind != inet_bind &&
-           (int) sk->sk_xid > 0 && sk->sk_xid != skb->xid)
+           (int) sk->sk_xid > 0 && sk->sk_xid != skb->xid) {
+               err = 0; /* ensures that it is silent */
+               kfree_skb(skb); /* discard frame */
                goto out;
+       }
 
        /* Cast skb->rcvbuf to unsigned... It's pointless, but reduces
           number of warnings when compiling with -W --ANK