diff options
author | Marco Elver <elver@google.com> | 2020-11-25 23:48:40 +0100 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2020-12-01 11:26:19 -0800 |
commit | fa69ee5aa48b5b52e8028c2eb486906e9998d081 (patch) | |
tree | 3a93e691ed484fd22681f316ca1cb54719a112d9 /lib | |
parent | 0fca55ed988a694f5896f36de2a8f18715a78279 (diff) | |
download | linux-fa69ee5aa48b5b52e8028c2eb486906e9998d081.tar.gz linux-fa69ee5aa48b5b52e8028c2eb486906e9998d081.tar.bz2 linux-fa69ee5aa48b5b52e8028c2eb486906e9998d081.zip |
net: switch to storing KCOV handle directly in sk_buff
It turns out that usage of skb extensions can cause memory leaks. Ido
Schimmel reported: "[...] there are instances that blindly overwrite
'skb->extensions' by invoking skb_copy_header() after __alloc_skb()."
Therefore, give up on using skb extensions for KCOV handle, and instead
directly store kcov_handle in sk_buff.
Fixes: 6370cc3bbd8a ("net: add kcov handle to skb extensions")
Fixes: 85ce50d337d1 ("net: kcov: don't select SKB_EXTENSIONS when there is no NET")
Fixes: 97f53a08cba1 ("net: linux/skbuff.h: combine SKB_EXTENSIONS + KCOV handling")
Link: https://lore.kernel.org/linux-wireless/20201121160941.GA485907@shredder.lan/
Reported-by: Ido Schimmel <idosch@idosch.org>
Signed-off-by: Marco Elver <elver@google.com>
Link: https://lore.kernel.org/r/20201125224840.2014773-1-elver@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Kconfig.debug | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 826a205ffd1c..1d15cdaf1b89 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -1879,7 +1879,6 @@ config KCOV depends on CC_HAS_SANCOV_TRACE_PC || GCC_PLUGINS select DEBUG_FS select GCC_PLUGIN_SANCOV if !CC_HAS_SANCOV_TRACE_PC - select SKB_EXTENSIONS if NET help KCOV exposes kernel code coverage information in a form suitable for coverage-guided fuzzing (randomized testing). |