Subject: Re: [PATCH 1/5] netfilter: ipset: fix interface comparision in hash-netiface sets

From: Florian Westphal <[email-masked]>
Date: Fri, 29 Jun 2012 20:24:23 +0200

David Laight <[email-masked]> wrote:
> > From: Florian Westphal <[email-masked]>
> > 
> > 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.
> 
> strncpy() would normally zero-fill the destination buffer
> (at least the libc version does).
> 
> So something else must be wrong.

No. driver .probe() runs before the device name is filled in, and no
explict zeroing happens there.