summaryrefslogtreecommitdiffstats
path: root/sys/kern/uipc_syscalls.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2002-08-15 17:34:03 +0000
committerrwatson <rwatson@FreeBSD.org>2002-08-15 17:34:03 +0000
commit10845c31e4ebf188411b0c317b4048d5579e35a3 (patch)
tree32aef02c3686520aecc3aa49eaf63a2e87d198b0 /sys/kern/uipc_syscalls.c
parentdeb01425604a363a6037b0abceaeda48071d181b (diff)
downloadFreeBSD-src-10845c31e4ebf188411b0c317b4048d5579e35a3.zip
FreeBSD-src-10845c31e4ebf188411b0c317b4048d5579e35a3.tar.gz
Fix return case for negative namelen by jumping to normal exit processing
rather than immediately returning, or we may not unlock necessary locks. Noticed by: Mike Heffner <mheffner@acm.vt.edu>
Diffstat (limited to 'sys/kern/uipc_syscalls.c')
-rw-r--r--sys/kern/uipc_syscalls.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c
index bcc065d..2191574 100644
--- a/sys/kern/uipc_syscalls.c
+++ b/sys/kern/uipc_syscalls.c
@@ -254,8 +254,10 @@ accept1(td, uap, compat)
error = copyin(uap->anamelen, &namelen, sizeof (namelen));
if(error)
goto done2;
- if (namelen < 0)
- return (EINVAL);
+ if (namelen < 0) {
+ error = EINVAL;
+ goto done2;
+ }
}
error = fgetsock(td, uap->s, &head, &fflag);
if (error)
OpenPOWER on IntegriCloud