diff options
author | Cong Wang <[email protected]> | 2020-03-13 22:29:54 -0700 |
---|---|---|
committer | David S. Miller <[email protected]> | 2020-03-16 01:59:32 -0700 |
commit | ef299cc3fa1a9e1288665a9fdc8bff55629fd359 (patch) | |
tree | 260bd9b4c8d37f9770b4b04e30663812728079d8 /scripts/gcc-plugins/sancov_plugin.c | |
parent | 4ae649e8879d5a96b0ce104c8eae6563c6f368a1 (diff) |
net_sched: cls_route: remove the right filter from hashtable
route4_change() allocates a new filter and copies values from
the old one. After the new filter is inserted into the hash
table, the old filter should be removed and freed, as the final
step of the update.
However, the current code mistakenly removes the new one. This
looks apparently wrong to me, and it causes double "free" and
use-after-free too, as reported by syzbot.
Reported-and-tested-by: [email protected]
Reported-and-tested-by: [email protected]
Reported-and-tested-by: [email protected]
Fixes: 1109c00547fc ("net: sched: RCU cls_route")
Cc: Jamal Hadi Salim <[email protected]>
Cc: Jiri Pirko <[email protected]>
Cc: John Fastabend <[email protected]>
Signed-off-by: Cong Wang <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'scripts/gcc-plugins/sancov_plugin.c')
0 files changed, 0 insertions, 0 deletions