macvtap: zerocopy: validate vectors before building skb
authorJason Wang <jasowang@redhat.com>
Wed, 2 May 2012 03:42:15 +0000 (11:42 +0800)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 25 Jul 2012 03:11:04 +0000 (04:11 +0100)
commit1be535a022a9c0b9a55cab2993ee29e05c4ead0b
tree281e5a7565778755dce6508733bb5a56d96aef35
parentcc64214d05941d09bb9f80051a1949a7223b8ab7
macvtap: zerocopy: validate vectors before building skb

commit b92946e2919134ebe2a4083e4302236295ea2a73 upstream.

There're several reasons that the vectors need to be validated:

- Return error when caller provides vectors whose num is greater than UIO_MAXIOV.
- Linearize part of skb when userspace provides vectors grater than MAX_SKB_FRAGS.
- Return error when userspace provides vectors whose total length may exceed
- MAX_SKB_FRAGS * PAGE_SIZE.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/net/macvtap.c