mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
ndisc: Fix padding error in link-layer address option.
If a natural number n exists where 2 + data_len <= 8n < 2 + data_len + pad, post padding is not initialized correctly. (Un)fortunately, the only type that requires pad is Infiniband, whose pad is 2 and data_len is 20, and this logical error has not become obvious, but it is better to fix. Note that ndisc_opt_addr_space() handles the situation described above correctly. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
499744209b
commit
7bdc1b4aba
@ -151,8 +151,8 @@ static inline int ndisc_opt_addr_space(struct net_device *dev)
|
||||
static u8 *ndisc_fill_addr_option(u8 *opt, int type, void *data, int data_len,
|
||||
unsigned short addr_type)
|
||||
{
|
||||
int space = NDISC_OPT_SPACE(data_len);
|
||||
int pad = ndisc_addr_option_pad(addr_type);
|
||||
int space = NDISC_OPT_SPACE(data_len + pad);
|
||||
|
||||
opt[0] = type;
|
||||
opt[1] = space>>3;
|
||||
|
Loading…
Reference in New Issue
Block a user