[PATCH net 0/2] net/iucv: fix the recvmsg window update
Bryam Vargas via B4 Relay <[email protected]>
| Newsgroups | org.kernel.vger.linux-s390,org.kernel.feeds.b4-sent,org.kernel.vger.linux-kernel,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
Two independent defects at the same call site, found while accounting for the
socket-locking rework and kept apart because they fail differently.
The first is a missing transport test: recvmsg sends AF_IUCV_FLAG_WIN, which
only exists on HiperSockets, without checking that the socket is on that
transport. Reaching it takes an application that sets SO_MSGLIMIT to 1 on its
own socket, so it is a correctness fix rather than a security one, and it is
first only because the second patch reads better on top of it.
The second is a sleeping allocation under spin_lock_bh: iucv_send_ctrl()
allocates with sk->sk_allocation, which is GFP_KERNEL for these sockets, inside
a section whose other allocation uses GFP_ATOMIC for exactly that reason.
By inspection; not reproduced. Compile-tested for s390x. Both are tagged
for stable: the second's context comes from the first, so tagging only
the second would hand the stable team a patch that does not apply.
---
Bryam Vargas (2):
net/iucv: only send the window update on HiperSockets sockets
net/iucv: send the window update outside message_q.lock
net/iucv/af_iucv.c | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
---
base-commit: a59f57e2aa127c5354168d2ec4bac920df1be4f4
change-id: 20260815-b4-disp-8a791503-027a9a4c2617
Best regards,
--
Bryam Vargas <[email protected]>