Merge branch 'net-tls-fix-scatter-gather-list-issues'
authorDavid S. Miller <davem@davemloft.net>
Fri, 29 Nov 2019 06:40:30 +0000 (22:40 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 29 Nov 2019 06:40:30 +0000 (22:40 -0800)
commit2eaa857534b4860dc337496e35f72f50614383b3
treec221b6c928b70543c9c5d1ba29c60b33448a74c3
parent81b6b96475ac7a4ebfceae9f16fb3758327adbfe
parente5dc9dd3258098bf8b5ceb75fc3433b41eff618a
Merge branch 'net-tls-fix-scatter-gather-list-issues'

Jakub Kicinski says:

====================
net: tls: fix scatter-gather list issues

This series kicked of by a syzbot report fixes three issues around
scatter gather handling in the TLS code. First patch fixes a use-
-after-free situation which may occur if record was freed on error.
This could have already happened in BPF paths, and patch 2 now makes
the same condition occur in non-BPF code.

Patch 2 fixes the problem spotted by syzbot. If encryption failed
we have to clean the end markings from scatter gather list. As
suggested by John the patch frees the record entirely and caller
may retry copying data from user space buffer again.

Third patch fixes a bug in the TLS 1.3 code spotted while working
on patch 2. TLS 1.3 may effectively overflow the SG list which
leads to the BUG() in sg_page() being triggered.

Patch 4 adds a test case which triggers this bug reliably.

Next two patches are small cleanups of dead code and code which
makes dangerous assumptions.

Last but not least two minor improvements to the sockmap tests.

Tested:
 - bpf/test_sockmap
 - net/tls
 - syzbot repro (which used error injection, hence no direct
   selftest is added to preserve it).
====================

Signed-off-by: David S. Miller <davem@davemloft.net>