From dfb67abecd0c8e62ba59922f1bd832066c4cdc4a Mon Sep 17 00:00:00 2001 From: Bill Joy Date: Tue, 5 Oct 1982 18:30:06 -0800 Subject: [PATCH] bug in sockopt() error handling in accept SCCS-vsn: sys/kern/uipc_syscalls.c 4.28 --- usr/src/sys/kern/uipc_syscalls.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/usr/src/sys/kern/uipc_syscalls.c b/usr/src/sys/kern/uipc_syscalls.c index eb6be4cd05..d88be06184 100644 --- a/usr/src/sys/kern/uipc_syscalls.c +++ b/usr/src/sys/kern/uipc_syscalls.c @@ -1,4 +1,4 @@ -/* uipc_syscalls.c 4.28 82/10/03 */ +/* uipc_syscalls.c 4.28 82/10/05 */ #include "../h/param.h" #include "../h/systm.h" @@ -33,13 +33,13 @@ socket() register struct file *fp; struct socketopt aopt; - if ((fp = falloc()) == NULL) + u.u_error = sockopt(&aopt, uap->opt); + if (u.u_error) return; + if ((fp = falloc()) == NULL) + goto freeopt; fp->f_flag = FREAD|FWRITE; fp->f_type = DTYPE_SOCKET; - u.u_error = sockopt(&aopt, uap->opt); - if (u.u_error) - goto bad; u.u_error = socreate(0, &so, uap->type, uap->protocol, &aopt); if (u.u_error) goto bad; -- 2.20.1