aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/uipc_accf.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/uipc_accf.c')
-rw-r--r--sys/kern/uipc_accf.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/kern/uipc_accf.c b/sys/kern/uipc_accf.c
index c63b5a1179bc..9e30e7839103 100644
--- a/sys/kern/uipc_accf.c
+++ b/sys/kern/uipc_accf.c
@@ -276,10 +276,14 @@ accept_filt_setopt(struct socket *so, struct sockopt *sopt)
* without first removing it.
*/
SOCK_LOCK(so);
- if (!SOLISTENING(so) || so->sol_accept_filter != NULL) {
+ if (__predict_false(!SOLISTENING(so))) {
error = EINVAL;
goto out;
}
+ if (__predict_false(so->sol_accept_filter != NULL)) {
+ error = EBUSY;
+ goto out;
+ }
/*
* Invoke the accf_create() method of the filter if required. The