--- linux-2.3.99pre2/net/ipv4/ip_input.c Sun Feb 27 01:34:27 2000 +++ linux/net/ipv4/ip_input.c Thu Mar 23 15:45:37 2000 @@ -162,7 +162,8 @@ read_lock(&ip_ra_lock); for (ra = ip_ra_chain; ra; ra = ra->next) { struct sock *sk = ra->sk; - if (sk && sk->num == protocol) { + /* 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))) { if (skb->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) { skb = ip_defrag(skb); if (skb == NULL) {