aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander V. Chernikov <melifaro@FreeBSD.org>2021-02-12 20:56:52 +0000
committerAlexander V. Chernikov <melifaro@FreeBSD.org>2021-02-14 10:16:51 +0000
commit11304949deb36d2f9abbcda87d398496e892dcec (patch)
tree3ee7112c54e94f052cf46685a7fba3c3dc3f8dbe
parentf94e8beadbd82f758c7663cb7115aeec2fbed7fa (diff)
Fix ifa refcount leak during route addition.
Reported by: rstone Reviewed by: rstone (cherry picked from commit a375ec52a7b423133f66878ecf002efc3b6e9fca)
-rw-r--r--sys/net/route/route_ctl.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/net/route/route_ctl.c b/sys/net/route/route_ctl.c
index 6b0869196d12..9aedfb9d5855 100644
--- a/sys/net/route/route_ctl.c
+++ b/sys/net/route/route_ctl.c
@@ -594,14 +594,12 @@ create_rtentry(struct rib_head *rnh, struct rt_addrinfo *info,
}
error = nhop_create_from_info(rnh, info, &nh);
- if (error != 0) {
- ifa_free(info->rti_ifa);
+ ifa_free(info->rti_ifa);
+ if (error != 0)
return (error);
- }
rt = uma_zalloc(V_rtzone, M_NOWAIT | M_ZERO);
if (rt == NULL) {
- ifa_free(info->rti_ifa);
nhop_free(nh);
return (ENOBUFS);
}