router alert bug in ip_call_ra_chain() (ip_input.c) 2.3.x?

From: Clayton, Mark (mclayton@hjinc.com)
Date: Thu Mar 23 2000 - 15:55:31 EST


If socket is bound to an interface, shouldn't you only report
the packet if it came from that interface.

int ip_call_ra_chain(struct sk_buff *skb)
{
        struct ip_ra_chain *ra;
        u8 protocol = skb->nh.iph->protocol;
        struct sock *last = NULL;

        read_lock(&ip_ra_lock);
        for (ra = ip_ra_chain; ra; ra = ra->next) {
                struct sock *sk = ra->sk;
#if 0
      /* If socket is bound to an interface,
         only report the packet if it came
         from that interface. */
                if (sk && sk->num == protocol
                && ((sk->bound_dev_if == 0)
                  || (sk->bound_dev_if == skb->dev->ifindex))) {
#else
                if (sk && sk->num == protocol) {
#endif
                        if (skb->nh.iph->frag_off & htons(IP_MF|IP_OFFSET))
{
                                skb = ip_defrag(skb);
                                if (skb == NULL) {
                                        read_unlock(&ip_ra_lock);
                                        return 1;
                                }
                        }

Thanks,
Mark Clayton

--
==========================================================
Mark Clayton                  voice:  781-329-3200 x1155
Harris & Jeffries             fax:    781-329-4148
888 Washington Street         e-mail: mclayton@hjinc.com
Dedham MA 02026 USA           web:    http://www.hjinc.com
==========================================================


- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Mar 23 2000 - 21:00:39 EST