diff options
author | rwatson <rwatson@FreeBSD.org> | 2002-08-15 17:34:03 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2002-08-15 17:34:03 +0000 |
commit | 10845c31e4ebf188411b0c317b4048d5579e35a3 (patch) | |
tree | 32aef02c3686520aecc3aa49eaf63a2e87d198b0 /sys/kern/uipc_syscalls.c | |
parent | deb01425604a363a6037b0abceaeda48071d181b (diff) | |
download | FreeBSD-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.c | 6 |
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) |