summaryrefslogtreecommitdiffstats
path: root/sys/netinet/udp_usrreq.c
diff options
context:
space:
mode:
authortruckman <truckman@FreeBSD.org>2002-07-11 23:18:43 +0000
committertruckman <truckman@FreeBSD.org>2002-07-11 23:18:43 +0000
commit5d8999f18a0f3915a58377ada8c5eba3770bcb42 (patch)
tree81d2779facad8b84176a57645f096be8d79ff82c /sys/netinet/udp_usrreq.c
parentfe3b828f84110cc861c7b7e84b37defa519387ea (diff)
downloadFreeBSD-src-5d8999f18a0f3915a58377ada8c5eba3770bcb42.zip
FreeBSD-src-5d8999f18a0f3915a58377ada8c5eba3770bcb42.tar.gz
Defer calling SYSCTL_OUT() until after the locks have been released.
Diffstat (limited to 'sys/netinet/udp_usrreq.c')
-rw-r--r--sys/netinet/udp_usrreq.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c
index 31fb251..56bb1e1 100644
--- a/sys/netinet/udp_usrreq.c
+++ b/sys/netinet/udp_usrreq.c
@@ -689,10 +689,11 @@ udp_getcred(SYSCTL_HANDLER_ARGS)
if (error)
goto out;
cru2x(inp->inp_socket->so_cred, &xuc);
- error = SYSCTL_OUT(req, &xuc, sizeof(struct xucred));
out:
INP_INFO_RUNLOCK(&udbinfo);
splx(s);
+ if (error == 0)
+ error = SYSCTL_OUT(req, &xuc, sizeof(struct xucred));
return (error);
}
OpenPOWER on IntegriCloud