X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=net%2Fipv4%2Fipconfig.c;h=a0c8504dc2231389c8265c0d3963b7e54bf3d84c;hb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;hp=92db76fe7e9ca5b71ebf15638d24cf56372715f9;hpb=a2c21200f1c81b08cb55e417b68150bba439b646;p=linux-2.6.git diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c index 92db76fe7..a0c8504dc 100644 --- a/net/ipv4/ipconfig.c +++ b/net/ipv4/ipconfig.c @@ -720,6 +720,8 @@ static void __init ic_bootp_send_if(struct ic_device *d, unsigned long jiffies_d b->htype = dev->type; else if (dev->type == ARPHRD_IEEE802_TR) /* fix for token ring */ b->htype = ARPHRD_IEEE802; + else if (dev->type == ARPHRD_FDDI) + b->htype = ARPHRD_ETHER; else { printk("Unknown ARP type 0x%04x for device %s\n", dev->type, dev->name); b->htype = dev->type; /* can cause undefined behavior */ @@ -966,6 +968,9 @@ static int __init ic_bootp_recv(struct sk_buff *skb, struct net_device *dev, str break; case DHCPACK: + if (memcmp(dev->dev_addr, b->hw_addr, dev->addr_len) != 0) + goto drop_unlock; + /* Yeah! */ break;