From: Roman Mashak <redacted>
Date: Fri, 11 May 2018 10:55:09 -0400
When application fails to pass flags in netlink TLV for a new skbedit action,
the kernel results in the following oops:
...
The caller calls action's ->init() and passes pointer to "struct tc_action *a",
which later may be initialized to point at the existing action, otherwise
"struct tc_action *a" is still invalid, and therefore dereferencing it is an
error as happens in tcf_idr_release, where refcnt is decremented.
So in case of missing flags tcf_idr_release must be called only for
existing actions.
v2:
- prepare patch for net tree
Signed-off-by: Roman Mashak <redacted>
Applied and queued up for -stable.