net/tls: Fix inverted error codes to avoid endless loop
authorr.hering@avm.de <r.hering@avm.de>
Fri, 12 Jan 2018 14:42:06 +0000 (15:42 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 31 Jan 2018 13:03:45 +0000 (14:03 +0100)
commitd3048a12f3eccc00d62db373df4cd50b1218f6f1
tree6a350d7372f756ce83b1f6d63ed79b5142d768c6
parent32e57f8c557faed0cd976abfb800a2f363e6972a
net/tls: Fix inverted error codes to avoid endless loop

[ Upstream commit 30be8f8dba1bd2aff73e8447d59228471233a3d4 ]

sendfile() calls can hang endless with using Kernel TLS if a socket error occurs.
Socket error codes must be inverted by Kernel TLS before returning because
they are stored with positive sign. If returned non-inverted they are
interpreted as number of bytes sent, causing endless looping of the
splice mechanic behind sendfile().

Signed-off-by: Robert Hering <r.hering@avm.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/net/tls.h
net/tls/tls_sw.c