]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'skb-sgvec-overflow'
authorDavid S. Miller <davem@davemloft.net>
Mon, 5 Jun 2017 03:01:48 +0000 (23:01 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 5 Jun 2017 03:01:48 +0000 (23:01 -0400)
commit6b36d6b987134d0179deeab38c0f8448f9e33204
tree513b8ea0c8bb573013ed3ea31d0734674eee4158
parentfafac6d1f2aacc564ea5701ef72328ef44a497d7
parenta2bb358b20117fbe6ff1a27e09f6ecf7bd64a0b2
Merge branch 'skb-sgvec-overflow'

Jason A. Donenfeld says:

====================
net: Avoiding stack overflow in skb_to_sgvec

The recent bug with macsec and historical one with virtio have
indicated that letting skb_to_sgvec trounce all over an sglist
without checking the length is probably a bad idea. And it's not
necessary either: an sglist already explicitly marks its last
item, and the initialization functions are diligent in doing so.
Thus there's a clear way of avoiding future overflows.

So, this patchset, from a high level, makes skb_to_sgvec return
a potential error code, and then adjusts all callers to check
for the error code. There are two situations in which skb_to_sgvec
might return such an error:

   1) When the passed in sglist is too small; and
   2) When the passed in skbuff is too deeply nested.

So, the first patch in this series handles the issues with
skb_to_sgvec directly, and the remaining ones then handle the call
sites.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>