]> git.ipfire.org Git - thirdparty/linux.git/commit
net/iucv: fix locking in .getsockopt
authorBreno Leitao <leitao@debian.org>
Thu, 21 May 2026 14:11:45 +0000 (07:11 -0700)
committerJakub Kicinski <kuba@kernel.org>
Sat, 23 May 2026 00:40:32 +0000 (17:40 -0700)
commit3589d20a666caf30ad100c960a2de7de390fce88
tree33f017e3d93f71ded4411688ee827c9665f5a883
parent9e4389b0038781f19f97895186ed941ff8ac1678
net/iucv: fix locking in .getsockopt

Mirror iucv_sock_setsockopt() and wrap the whole switch in
lock_sock()/release_sock(). The pre-existing SO_MSGLIMIT-only lock
becomes redundant and is removed.

Any AF_IUCV HIPER user can potentially crash the kernel by racing
recvmsg() with getsockopt(SO_MSGSIZE): the SO_MSGSIZE arm dereferences
iucv->hs_dev->mtu after iucv_sock_close() (called from the racing
recvmsg()) has set hs_dev to NULL, producing a NULL pointer dereference
oops.

Suggested-by: Stanislav Fomichev <sdf.kernel@gmail.com>
Fixes: 51363b8751a6 ("af_iucv: allow retrieval of maximum message size")
Signed-off-by: Breno Leitao <leitao@debian.org>
Reviewed-by: Alexandra Winter <wintera@linux.ibm.com>
Tested-by: Alexandra Winter <wintera@linux.ibm.com>
Link: https://patch.msgid.link/20260521-af_iucv_fix2-v1-1-f16b1c510aa9@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/iucv/af_iucv.c