aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/net/rtsock.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c
index f014af191368..98e917c6106c 100644
--- a/sys/net/rtsock.c
+++ b/sys/net/rtsock.c
@@ -428,11 +428,13 @@ route_output(struct mbuf *m, struct socket *so)
RADIX_NODE_HEAD_LOCK(rnh);
rt = (struct rtentry *) rnh->rnh_lookup(info.rti_info[RTAX_DST],
info.rti_info[RTAX_NETMASK], rnh);
- RADIX_NODE_HEAD_UNLOCK(rnh);
- if (rt == NULL) /* XXX looks bogus */
+ if (rt == NULL) { /* XXX looks bogus */
+ RADIX_NODE_HEAD_UNLOCK(rnh);
senderr(ESRCH);
+ }
RT_LOCK(rt);
RT_ADDREF(rt);
+ RADIX_NODE_HEAD_UNLOCK(rnh);
/*
* Fix for PR: 82974