Hello.

In article <[EMAIL PROTECTED]> (at Wed, 25 Jan 2006 09:13:26 -0800), "Kris 
Katterjohn" <[EMAIL PROTECTED]> says:


> +
> +     case PACKET_ACCUMULATE_STATISTICS:
> +     {
> +             int val;
> +
> +             if (optlen != sizeof(val))
> +                     return -EINVAL;

I think this is too strict.
                if (optlen < sizeof(val))
                        return -EINVAL;
                if (optlen > sizeof(val))
                        optlen = sizeof(val);

> +             if (copy_from_user(&val, optval, optlen))
> +                     return -EFAULT;
> +
> +             po->accumulate_stats = !!val;
> +             return 0;
> +     }
> +
> +     case PACKET_STATISTICS:
> +             spin_lock_bh(&sk->sk_receive_queue.lock);
> +             memset(&po->stats, 0, sizeof(po->stats));
> +             spin_unlock_bh(&sk->sk_receive_queue.lock);
> +             return 0;
> +
>  #ifdef CONFIG_PACKET_MMAP
>       case PACKET_RX_RING:
>       {
> @@ -1399,6 +1425,15 @@ static int packet_getsockopt(struct sock
>               return -EINVAL;
>               
>       switch(optname) {
> +     case PACKET_ACCUMULATE_STATISTICS:
> +     {
> +             if (len != sizeof(po->accumulate_stats))
> +                     return -EINVAL;

This does not conform to POSIX.

                if (len > sizeof(po->accumulate_stats))
                        len = sizeof(po->accumulate_stats);


Otherwise, it seems fine to me.

Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

-- 
YOSHIFUJI Hideaki @ USAGI Project  <[EMAIL PROTECTED]>
GPG-FP  : 9022 65EB 1ECF 3AD1 0BDF  80D8 4807 F894 E062 0EEA
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to