]> granicus.if.org Git - ipset/commit
netfilter: ipset: hash:net,iface: fix interface comparison
authorFlorian Westphal <fw@strlen.de>
Sun, 17 Jun 2012 19:56:46 +0000 (21:56 +0200)
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Tue, 19 Jun 2012 20:33:58 +0000 (22:33 +0200)
commite17e57418cd03976f12c4f45e4119cf0198e7c17
tree7d491757c9a0936a4f0af5c082f6467bcfd75a54
parent1b4f87c8d9f466edfaa25896892031d78738f335
netfilter: ipset: hash:net,iface: fix interface comparison

ifname_compare() assumes that skb->dev is zero-padded,
e.g 'eth1\0\0\0\0\0...'. This isn't always the case. e1000 driver does

strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1);

in e1000_probe(), so once device is registered dev->name memory contains
'eth1\0:0:3\0\0\0' (or something like that), which makes eth1 compare
fail.

Use plain strcmp() instead.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
kernel/net/netfilter/ipset/ip_set_hash_netiface.c