On Fri, 2005-07-08 at 17:22 -0700, David S. Miller wrote:
> From: "David S. Miller" <[EMAIL PROTECTED]>
> Date: Fri, 08 Jul 2005 16:27:56 -0700 (PDT)
> 
> > I'll see if I can figure out a way to deal with this cleanly.
> 
> I figured out a way.  Sridhar can you give this patch below
> a test?

I did a quick run of the regression tests with the patch and i
didn't see any problems.

> 
> I use the control block to store the chunk pointer, then
> pass skb's around.  It's use is confined only to sctp_rcv()
> and sctp_backlog_rcv() so I didn't put it into any of the
> SCTP header files, it can stay local to sctp/input.c
> 
> BTW, the rest of the SCTP input path should be audited to make sure
> any other use of the SKB control block on input does not spam the
> ipv4/ipv6 parameter area (struct inet_skb_parm and struct
> inet6_skb_parm).  That must be preserved on input (unless you
> unshare the SKB of course).  That's why TCP's skb control block
> (in net/tcp.h) uses this header as well.

We do a skb_clone() before using the SKB control block to store
the ulpevent structure, so i guess it should be OK.

> 
> Also, if you can get this patch working, can you check to see
> if it works to change sctp_chunk_free() to go:
> 
>       BUG_ON(!list_empty(&chunk->list));

Even this works fine, so we can replace the list_empty() check
with BUG_ON.

Thanks
Sridhar

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to