summaryrefslogtreecommitdiff
path: root/drivers/scsi/iscsi_tcp.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2023-09-15 17:11:11 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-10-06 14:56:38 +0200
commit5734d22c9ea0a9d394b5e668c8e163bb3eaa3b95 (patch)
treed1fe612b02d0688f57c0a937c6867151c8e43703 /drivers/scsi/iscsi_tcp.c
parent2712545e535d7a2e4c53b9c9658a9c88c6055862 (diff)
downloadlinux-5734d22c9ea0a9d394b5e668c8e163bb3eaa3b95.tar.gz
linux-5734d22c9ea0a9d394b5e668c8e163bb3eaa3b95.tar.bz2
linux-5734d22c9ea0a9d394b5e668c8e163bb3eaa3b95.zip
scsi: iscsi_tcp: restrict to TCP sockets
[ Upstream commit f4f82c52a0ead5ab363d207d06f81b967d09ffb8 ] Nothing prevents iscsi_sw_tcp_conn_bind() to receive file descriptor pointing to non TCP socket (af_unix for example). Return -EINVAL if this is attempted, instead of crashing the kernel. Fixes: 7ba247138907 ("[SCSI] open-iscsi/linux-iscsi-5 Initiator: Initiator code") Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Lee Duncan <lduncan@suse.com> Cc: Chris Leech <cleech@redhat.com> Cc: Mike Christie <michael.christie@oracle.com> Cc: "James E.J. Bottomley" <jejb@linux.ibm.com> Cc: "Martin K. Petersen" <martin.petersen@oracle.com> Cc: open-iscsi@googlegroups.com Cc: linux-scsi@vger.kernel.org Reviewed-by: Mike Christie <michael.christie@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/scsi/iscsi_tcp.c')
-rw-r--r--drivers/scsi/iscsi_tcp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c
index 8009eab3b7be..56ade4630970 100644
--- a/drivers/scsi/iscsi_tcp.c
+++ b/drivers/scsi/iscsi_tcp.c
@@ -724,6 +724,10 @@ iscsi_sw_tcp_conn_bind(struct iscsi_cls_session *cls_session,
return -EEXIST;
}
+ err = -EINVAL;
+ if (!sk_is_tcp(sock->sk))
+ goto free_socket;
+
err = iscsi_conn_bind(cls_session, cls_conn, is_leading);
if (err)
goto free_socket;