net/tls: Use tcp_read_sock() instead of ops->read_sock()
authorHannes Reinecke <hare@suse.de>
Wed, 26 Jul 2023 19:15:54 +0000 (21:15 +0200)
committerJakub Kicinski <kuba@kernel.org>
Fri, 28 Jul 2023 02:49:35 +0000 (19:49 -0700)
commit11863c6d440d34c4b967e517739b38a7e68ed092
tree8701ce0f7a4f8e31c1bd4bc4402605e0b862c2bf
parent8790c6a4f54d455ee85453f9493b4cd60a01dc38
net/tls: Use tcp_read_sock() instead of ops->read_sock()

TLS resets the protocol operations, so the read_sock() callback might
be changed, too.
In this case using sock->ops->readsock() in tls_strp_read_copyin() will
enter an infinite recursion if the read_sock() callback is calling
tls_rx_rec_wait() which will call into sock->ops->readsock() via
tls_strp_read_copyin().
But as tls_strp_read_copyin() is supposed to produce data from the
consumed socket and that socket is always a TCP socket we can call
tcp_read_sock() directly without having to deal with callbacks.

Signed-off-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Link: https://lore.kernel.org/r/20230726191556.41714-5-hare@suse.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/tls/tls_strp.c