summaryrefslogtreecommitdiffstats
path: root/sys/net/rtsock.c
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2008-12-13 22:41:36 +0000
committerthompsa <thompsa@FreeBSD.org>2008-12-13 22:41:36 +0000
commitdeedb2bd3a01857a0a8bfb55b1b1912653c008ff (patch)
treea1d76dea0ce7bd238487b29d5e459d8d48df92f4 /sys/net/rtsock.c
parent79df8e45992bef49348b53814c4fdcb02172a3de (diff)
downloadFreeBSD-src-deedb2bd3a01857a0a8bfb55b1b1912653c008ff.zip
FreeBSD-src-deedb2bd3a01857a0a8bfb55b1b1912653c008ff.tar.gz
Dont leak the rnh lock on error.
Diffstat (limited to 'sys/net/rtsock.c')
-rw-r--r--sys/net/rtsock.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c
index e8cc021..5003b03 100644
--- a/sys/net/rtsock.c
+++ b/sys/net/rtsock.c
@@ -673,10 +673,10 @@ route_output(struct mbuf *m, struct socket *so)
rt->rt_ifa->ifa_addr))) {
RT_UNLOCK(rt);
RADIX_NODE_HEAD_LOCK(rnh);
- if ((error = rt_getifa_fib(&info,
- rt->rt_fibnum)) != 0)
- senderr(error);
+ error = rt_getifa_fib(&info, rt->rt_fibnum);
RADIX_NODE_HEAD_UNLOCK(rnh);
+ if (error != 0)
+ senderr(error);
RT_LOCK(rt);
}
if (info.rti_ifa != NULL &&
OpenPOWER on IntegriCloud