Subject: Re: [PATCH]IPv6:remove duplicate check of optlen when setsockopt with IPV6_PKTINFO option

From: Yang Hongyang <[email-masked]>
Date: Wed, 14 Jan 2009 13:27:20 +0800

Wei Yongjun wrote:
> Yang Hongyang wrote:
>> Herbert Xu wrote:
>>  
>>> Yang Hongyang <[email-masked]> wrote:
>>>    
>>>> Actually the condition (optlen == 0) is included in (optlen <
>>>> sizeof(struct in6_pktinfo)),
>>>> so we do not need to check it separately.
>>>>       
>>> You don't need to check optval == NULL either since that's the
>>> job of copy_from_user.
>>>     
>>
>> If optval==NULL, what we should return?EINVAL or EFAULT?
>> If it is EINVAL,then we should check it .otherwise it's the job of
>> copy_from_user
>>   
> 
> I think if optval==NULL, the in6_pktinfo which is set should be remove.
> So, you should handle optval==NULL. Not just return error.

There's no RFC defines the behavior above,but:
  RFC3542 said The application can remove any sticky Routing header or sticky 
Destination options header or sticky Hop-by-Hop options header by calling 
setsockopt() with a zero option length.

So,do we need to allow remove any sticky pktinfo option by calling 
setsockopt() with a zero option length?

>>> Cheers,

-- 
Regards
Yang Hongyang