Skip to content

Commit 2ebbad0

Browse files
committed
net/ulp: use consistent error code when blocking ULP
jira VULN-8789 cve-bf CVE-2023-0461 commit-author Paolo Abeni <pabeni@redhat.com> commit 8ccc993 The referenced commit changed the error code returned by the kernel when preventing a non-established socket from attaching the ktls ULP. Before to such a commit, the user-space got ENOTCONN instead of EINVAL. The existing self-tests depend on such error code, and the change caused a failure: RUN global.non_established ... tls.c:1673:non_established:Expected errno (22) == ENOTCONN (107) non_established: Test failed at step #3 FAIL global.non_established In the unlikely event existing applications do the same, address the issue by restoring the prior error code in the above scenario. Note that the only other ULP performing similar checks at init time - smc_ulp_ops - also fails with ENOTCONN when trying to attach the ULP to a non-established socket. Reported-by: Sabrina Dubroca <sd@queasysnail.net> Fixes: 2c02d41 ("net/ulp: prevent ULP without clone op from entering the LISTEN status") Signed-off-by: Paolo Abeni <pabeni@redhat.com> Reviewed-by: Sabrina Dubroca <sd@queasysnail.net> Link: https://lore.kernel.org/r/7bb199e7a93317fb6f8bf8b9b2dc71c18f337cde.1674042685.git.pabeni@redhat.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> (cherry picked from commit 8ccc993) Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com> # Conflicts: # net/ipv4/tcp_ulp.c
1 parent 900f57e commit 2ebbad0

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

net/ipv4/tcp_ulp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ static int __tcp_set_ulp(struct sock *sk, const struct tcp_ulp_ops *ulp_ops)
131131
if (icsk->icsk_ulp_ops)
132132
goto out_err;
133133

134-
err = -EINVAL;
134+
err = -ENOTCONN;
135135
if (!ulp_ops->clone && sk->sk_state == TCP_LISTEN)
136136
goto out_err;
137137

0 commit comments

Comments
 (0)