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