diff options
author | Will Deacon <[email protected]> | 2020-04-03 16:13:21 +0100 |
---|---|---|
committer | David S. Miller <[email protected]> | 2020-04-06 10:00:43 -0700 |
commit | bee348907d19d654e8524d3a946dcd25b693aa7e (patch) | |
tree | 1bbeb3d08325c50743147353e64dfced2668748a /tools/perf/scripts/python/export-to-sqlite.py | |
parent | 0452800f6db4ed0a42ffb15867c0acfd68829f6a (diff) |
tun: Don't put_page() for all negative return values from XDP program
When an XDP program is installed, tun_build_skb() grabs a reference to
the current page fragment page if the program returns XDP_REDIRECT or
XDP_TX. However, since tun_xdp_act() passes through negative return
values from the XDP program, it is possible to trigger the error path by
mistake and accidentally drop a reference to the fragments page without
taking one, leading to a spurious free. This is believed to be the cause
of some KASAN use-after-free reports from syzbot [1], although without a
reproducer it is not possible to confirm whether this patch fixes the
problem.
Ensure that we only drop a reference to the fragments page if the XDP
transmit or redirect operations actually fail.
[1] https://syzkaller.appspot.com/bug?id=e76a6af1be4acd727ff6bbca669833f98cbf5d95
Cc: "David S. Miller" <[email protected]>
Cc: Alexei Starovoitov <[email protected]>
Cc: Daniel Borkmann <[email protected]>
CC: Eric Dumazet <[email protected]>
Acked-by: Jason Wang <[email protected]>
Fixes: 8ae1aff0b331 ("tuntap: split out XDP logic")
Signed-off-by: Will Deacon <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/export-to-sqlite.py')
0 files changed, 0 insertions, 0 deletions