Hi David, I was playing around with using ipconfig to initialise a bunch of systems and it turns out that the ipconfig code doesn't check to see whether the ACK is for it or another system. I've just
Just because there are 16 bytes of hw address in the bootp packet layout doesn't mean the device actually has that many. Please fix it to use dev->addr_len.
layout doesn't mean the device actually has that many. Please fix it to use dev->addr_len. is this okay? peter Signed-off-by: Peter Buckingham <peter@xxxxxxxxxxxx> -- linus-2.6/net/ipv4/ipconfig.c 20
I had to read that twice. How about something like: for (i=0;i<dev->addr_len;i++) if (dev->dev_addr[i] != b->hw_addr[i]) goto drop_unlock; or if (memcmp(dev->dev_addr, b->hw_addr, dev->addr_len)!=0)
Joe Perches wrote: if (memcmp(dev->dev_addr, b->hw_addr, dev->addr_len)!=0) goto drop_unlock; I prefer this one. Signed-off-by: Peter Buckingham <peter@xxxxxxxxxxxx> -- linus-2.6/net/ipv4/ipconfig.c
Hi David, I was playing around with using ipconfig to initialise a bunch of systems and it turns out that the ipconfig code doesn't check to see whether the ACK is for it or another system. I've just
Just because there are 16 bytes of hw address in the bootp packet layout doesn't mean the device actually has that many. Please fix it to use dev->addr_len.
layout doesn't mean the device actually has that many. Please fix it to use dev->addr_len. is this okay? peter Signed-off-by: Peter Buckingham <peter@xxxxxxxxxxxx> -- linus-2.6/net/ipv4/ipconfig.c 2
I had to read that twice. How about something like: for (i=0;i<dev->addr_len;i++) if (dev->dev_addr[i] != b->hw_addr[i]) goto drop_unlock; or if (memcmp(dev->dev_addr, b->hw_addr, dev->addr_len)!=0)