Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ipv6: Do not leak throw route references
While commit 73ba57b ("ipv6: fix backtracking for throw routes") does good job on error propagation to the fib_rules_lookup() in fib rules core framework that also corrects throw routes handling, it does not solve route reference leakage problem happened when we return -EAGAIN to the fib_rules_lookup() and leave routing table entry referenced in arg->result. If rule with matched throw route isn't last matched in the list we overwrite arg->result losing reference on throw route stored previously forever. We also partially revert commit ab997ad ("ipv6: fix the incorrect return value of throw route") since we never return routing table entry with dst.error == -EAGAIN when CONFIG_IPV6_MULTIPLE_TABLES is on. Also there is no point to check for RTF_REJECT flag since it is always set throw route. Fixes: 73ba57b ("ipv6: fix backtracking for throw routes") Signed-off-by: Serhey Popovych <[email protected]> Signed-off-by: David S. Miller <[email protected]>
- Loading branch information