Subject: Re: [GIT PULL net-next 04/17] ndisc: Introduce ndisc_fill_redirect_hdr_option().

From: YOSHIFUJI Hideaki <[email-masked]>
Date: Thu, 20 Dec 2012 02:27:35 +0900

(2012年12月20日 01:25), YOSHIFUJI Hideaki wrote:
> Bjørn Mork wrote:
>> YOSHIFUJI Hideaki <[email-masked]> writes:

>>> +static u8 *ndisc_fill_redirect_hdr_option(u8 *opt, struct sk_buff *orig_skb,
>>> +					  int rd_len)
>>> +{
>>> +	memset(opt, 0, 8);
>>> +	*(opt++) = ND_OPT_REDIRECT_HDR;
>>> +	*(opt++) = (rd_len >> 3);
>>> +	opt += 6;
>>> +
>>> +	memcpy(opt, ipv6_hdr(orig_skb), rd_len - 8);
>>> +
>>> +	return opt;
>>> +}
:
>> I understand that opt isn't currently used after this, but if it ever is
>> then it is going to come as big a surprise that this implies opt += 8;
>>
>> This was previously quite clear when the code was inline, but it becomes
>> problematic when it is factored out.
> 
> I understand your concern.  opt will be disappeared by following
> changeset (12 of 17).

Argh, I now notice return value was not quite right; it should
return opt + rd_len - 8.

Fixed in my local tree.  Thanks.

--yoshfuji