mirror of https://github.com/torvalds/linux.git
vsock/test: Extend transport change null-ptr-deref test
syzkaller reported a lockdep lock order inversion warning[1] due to commit687aa0c558("vsock: Fix transport_* TOCTOU"). This was fixed in commitf7c877e753("vsock: fix lock inversion in vsock_assign_transport()"). Redo syzkaller's repro by piggybacking on a somewhat related test implemented in commit3a764d9338("vsock/test: Add test for null ptr deref when transport changes"). [1]: https://lore.kernel.org/netdev/68f6cdb0.a70a0220.205af.0039.GAE@google.com/ Signed-off-by: Michal Luczaj <mhal@rbox.co> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Link: https://patch.msgid.link/20251123-vsock_test-linger-lockdep-warn-v1-1-4b1edf9d8cdc@rbox.co Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
87ad869fea
commit
b796632fc8
|
|
@ -2015,6 +2015,11 @@ static void test_stream_transport_change_client(const struct test_opts *opts)
|
|||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Although setting SO_LINGER does not affect the original test
|
||||
* for null-ptr-deref, it may trigger a lockdep warning.
|
||||
*/
|
||||
enable_so_linger(s, 1);
|
||||
|
||||
ret = connect(s, (struct sockaddr *)&sa, sizeof(sa));
|
||||
/* The connect can fail due to signals coming from the thread,
|
||||
* or because the receiver connection queue is full.
|
||||
|
|
@ -2352,7 +2357,7 @@ static struct test_case test_cases[] = {
|
|||
.run_server = test_stream_nolinger_server,
|
||||
},
|
||||
{
|
||||
.name = "SOCK_STREAM transport change null-ptr-deref",
|
||||
.name = "SOCK_STREAM transport change null-ptr-deref, lockdep warn",
|
||||
.run_client = test_stream_transport_change_client,
|
||||
.run_server = test_stream_transport_change_server,
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue