Skip to content

Commit a3d3eb9

Browse files
jrifeAlexei Starovoitov
authored andcommitted
selftests/bpf: Expand ATTACH_REJECT tests
This expands coverage for ATTACH_REJECT tests to include connect_unix, sendmsg_unix, recvmsg*, getsockname*, and getpeername*. Signed-off-by: Jordan Rife <jrife@google.com> Link: https://lore.kernel.org/r/20240510190246.3247730-18-jrife@google.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
1 parent bc467e9 commit a3d3eb9

1 file changed

Lines changed: 187 additions & 0 deletions

File tree

tools/testing/selftests/bpf/prog_tests/sock_addr.c

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,7 @@ BPF_SKEL_FUNCS(connect6_prog, connect_v6_prog);
454454
BPF_SKEL_FUNCS_RAW(connect6_prog, connect_v6_prog);
455455
BPF_SKEL_FUNCS(connect6_prog, connect_v6_deny_prog);
456456
BPF_SKEL_FUNCS(connect_unix_prog, connect_unix_prog);
457+
BPF_SKEL_FUNCS_RAW(connect_unix_prog, connect_unix_prog);
457458
BPF_SKEL_FUNCS(connect_unix_prog, connect_unix_deny_prog);
458459
BPF_SKEL_FUNCS(sendmsg4_prog, sendmsg_v4_prog);
459460
BPF_SKEL_FUNCS_RAW(sendmsg4_prog, sendmsg_v4_prog);
@@ -465,16 +466,26 @@ BPF_SKEL_FUNCS(sendmsg6_prog, sendmsg_v6_preserve_dst_prog);
465466
BPF_SKEL_FUNCS(sendmsg6_prog, sendmsg_v6_v4mapped_prog);
466467
BPF_SKEL_FUNCS(sendmsg6_prog, sendmsg_v6_wildcard_prog);
467468
BPF_SKEL_FUNCS(sendmsg_unix_prog, sendmsg_unix_prog);
469+
BPF_SKEL_FUNCS_RAW(sendmsg_unix_prog, sendmsg_unix_prog);
468470
BPF_SKEL_FUNCS(sendmsg_unix_prog, sendmsg_unix_deny_prog);
469471
BPF_SKEL_FUNCS(recvmsg4_prog, recvmsg4_prog);
472+
BPF_SKEL_FUNCS_RAW(recvmsg4_prog, recvmsg4_prog);
470473
BPF_SKEL_FUNCS(recvmsg6_prog, recvmsg6_prog);
474+
BPF_SKEL_FUNCS_RAW(recvmsg6_prog, recvmsg6_prog);
471475
BPF_SKEL_FUNCS(recvmsg_unix_prog, recvmsg_unix_prog);
476+
BPF_SKEL_FUNCS_RAW(recvmsg_unix_prog, recvmsg_unix_prog);
472477
BPF_SKEL_FUNCS(getsockname_unix_prog, getsockname_unix_prog);
478+
BPF_SKEL_FUNCS_RAW(getsockname_unix_prog, getsockname_unix_prog);
473479
BPF_SKEL_FUNCS(getsockname4_prog, getsockname_v4_prog);
480+
BPF_SKEL_FUNCS_RAW(getsockname4_prog, getsockname_v4_prog);
474481
BPF_SKEL_FUNCS(getsockname6_prog, getsockname_v6_prog);
482+
BPF_SKEL_FUNCS_RAW(getsockname6_prog, getsockname_v6_prog);
475483
BPF_SKEL_FUNCS(getpeername_unix_prog, getpeername_unix_prog);
484+
BPF_SKEL_FUNCS_RAW(getpeername_unix_prog, getpeername_unix_prog);
476485
BPF_SKEL_FUNCS(getpeername4_prog, getpeername_v4_prog);
486+
BPF_SKEL_FUNCS_RAW(getpeername4_prog, getpeername_v4_prog);
477487
BPF_SKEL_FUNCS(getpeername6_prog, getpeername_v6_prog);
488+
BPF_SKEL_FUNCS_RAW(getpeername6_prog, getpeername_v6_prog);
478489

479490
static struct sock_addr_test tests[] = {
480491
/* bind - system calls */
@@ -1026,6 +1037,22 @@ static struct sock_addr_test tests[] = {
10261037
NULL,
10271038
SYSCALL_EPERM,
10281039
},
1040+
{
1041+
SOCK_ADDR_TEST_CONNECT,
1042+
"connect_unix: attach prog with wrong attach type",
1043+
connect_unix_prog_load_raw,
1044+
connect_unix_prog_destroy_raw,
1045+
BPF_CGROUP_INET4_CONNECT,
1046+
&user_ops,
1047+
AF_UNIX,
1048+
SOCK_STREAM,
1049+
SERVUN_ADDRESS,
1050+
0,
1051+
SERVUN_REWRITE_ADDRESS,
1052+
0,
1053+
NULL,
1054+
ATTACH_REJECT,
1055+
},
10291056

10301057
/* connect - kernel calls */
10311058
{
@@ -1398,6 +1425,22 @@ static struct sock_addr_test tests[] = {
13981425
NULL,
13991426
SYSCALL_EPERM,
14001427
},
1428+
{
1429+
SOCK_ADDR_TEST_SENDMSG,
1430+
"sendmsg_unix: attach prog with wrong attach type",
1431+
sendmsg_unix_prog_load_raw,
1432+
sendmsg_unix_prog_destroy_raw,
1433+
BPF_CGROUP_UDP4_SENDMSG,
1434+
&user_ops,
1435+
AF_UNIX,
1436+
SOCK_DGRAM,
1437+
SERVUN_ADDRESS,
1438+
0,
1439+
SERVUN_REWRITE_ADDRESS,
1440+
0,
1441+
NULL,
1442+
ATTACH_REJECT,
1443+
},
14011444

14021445
/* sendmsg - kernel calls (sock_sendmsg) */
14031446
{
@@ -1644,6 +1687,22 @@ static struct sock_addr_test tests[] = {
16441687
SERV4_IP,
16451688
SUCCESS,
16461689
},
1690+
{
1691+
SOCK_ADDR_TEST_RECVMSG,
1692+
"recvmsg4: attach prog with wrong attach type",
1693+
recvmsg4_prog_load_raw,
1694+
recvmsg4_prog_destroy_raw,
1695+
BPF_CGROUP_UDP6_RECVMSG,
1696+
&user_ops,
1697+
AF_INET,
1698+
SOCK_DGRAM,
1699+
SERV4_REWRITE_IP,
1700+
SERV4_REWRITE_PORT,
1701+
SERV4_REWRITE_IP,
1702+
SERV4_REWRITE_PORT,
1703+
SERV4_IP,
1704+
ATTACH_REJECT,
1705+
},
16471706
{
16481707
SOCK_ADDR_TEST_RECVMSG,
16491708
"recvmsg6: recvfrom (dgram)",
@@ -1660,6 +1719,22 @@ static struct sock_addr_test tests[] = {
16601719
SERV6_IP,
16611720
SUCCESS,
16621721
},
1722+
{
1723+
SOCK_ADDR_TEST_RECVMSG,
1724+
"recvmsg6: attach prog with wrong attach type",
1725+
recvmsg6_prog_load_raw,
1726+
recvmsg6_prog_destroy_raw,
1727+
BPF_CGROUP_UDP4_RECVMSG,
1728+
&user_ops,
1729+
AF_INET6,
1730+
SOCK_DGRAM,
1731+
SERV6_REWRITE_IP,
1732+
SERV6_REWRITE_PORT,
1733+
SERV6_REWRITE_IP,
1734+
SERV6_REWRITE_PORT,
1735+
SERV6_IP,
1736+
ATTACH_REJECT,
1737+
},
16631738
{
16641739
SOCK_ADDR_TEST_RECVMSG,
16651740
"recvmsg_unix: recvfrom (dgram)",
@@ -1692,6 +1767,22 @@ static struct sock_addr_test tests[] = {
16921767
SERVUN_ADDRESS,
16931768
SUCCESS,
16941769
},
1770+
{
1771+
SOCK_ADDR_TEST_RECVMSG,
1772+
"recvmsg_unix: attach prog with wrong attach type",
1773+
recvmsg_unix_prog_load_raw,
1774+
recvmsg_unix_prog_destroy_raw,
1775+
BPF_CGROUP_UDP4_RECVMSG,
1776+
&user_ops,
1777+
AF_INET6,
1778+
SOCK_STREAM,
1779+
SERVUN_REWRITE_ADDRESS,
1780+
0,
1781+
SERVUN_REWRITE_ADDRESS,
1782+
0,
1783+
SERVUN_ADDRESS,
1784+
ATTACH_REJECT,
1785+
},
16951786

16961787
/* getsockname - system calls */
16971788
{
@@ -1726,6 +1817,22 @@ static struct sock_addr_test tests[] = {
17261817
NULL,
17271818
SUCCESS,
17281819
},
1820+
{
1821+
SOCK_ADDR_TEST_GETSOCKNAME,
1822+
"getsockname4: attach prog with wrong attach type",
1823+
getsockname_v4_prog_load_raw,
1824+
getsockname_v4_prog_destroy_raw,
1825+
BPF_CGROUP_INET6_GETSOCKNAME,
1826+
&user_ops,
1827+
AF_INET,
1828+
SOCK_DGRAM,
1829+
SERV4_REWRITE_IP,
1830+
SERV4_REWRITE_PORT,
1831+
SERV4_IP,
1832+
SERV4_PORT,
1833+
NULL,
1834+
ATTACH_REJECT,
1835+
},
17291836
{
17301837
SOCK_ADDR_TEST_GETSOCKNAME,
17311838
"getsockname6: getsockname (stream)",
@@ -1758,6 +1865,22 @@ static struct sock_addr_test tests[] = {
17581865
NULL,
17591866
SUCCESS,
17601867
},
1868+
{
1869+
SOCK_ADDR_TEST_GETSOCKNAME,
1870+
"getsockname6: attach prog with wrong attach type",
1871+
getsockname_v6_prog_load_raw,
1872+
getsockname_v6_prog_destroy_raw,
1873+
BPF_CGROUP_INET4_GETSOCKNAME,
1874+
&user_ops,
1875+
AF_INET6,
1876+
SOCK_DGRAM,
1877+
SERV6_REWRITE_IP,
1878+
SERV6_REWRITE_PORT,
1879+
SERV6_IP,
1880+
SERV6_PORT,
1881+
NULL,
1882+
ATTACH_REJECT,
1883+
},
17611884
{
17621885
SOCK_ADDR_TEST_GETSOCKNAME,
17631886
"getsockname_unix: getsockname",
@@ -1774,6 +1897,22 @@ static struct sock_addr_test tests[] = {
17741897
NULL,
17751898
SUCCESS,
17761899
},
1900+
{
1901+
SOCK_ADDR_TEST_GETSOCKNAME,
1902+
"getsockname_unix: attach prog with wrong attach type",
1903+
getsockname_unix_prog_load_raw,
1904+
getsockname_unix_prog_destroy_raw,
1905+
BPF_CGROUP_INET4_GETSOCKNAME,
1906+
&user_ops,
1907+
AF_UNIX,
1908+
SOCK_STREAM,
1909+
SERVUN_ADDRESS,
1910+
0,
1911+
SERVUN_REWRITE_ADDRESS,
1912+
0,
1913+
NULL,
1914+
ATTACH_REJECT,
1915+
},
17771916

17781917
/* getsockname - kernel calls */
17791918
{
@@ -1890,6 +2029,22 @@ static struct sock_addr_test tests[] = {
18902029
NULL,
18912030
SUCCESS,
18922031
},
2032+
{
2033+
SOCK_ADDR_TEST_GETPEERNAME,
2034+
"getpeername4: attach prog with wrong attach type",
2035+
getpeername_v4_prog_load_raw,
2036+
getpeername_v4_prog_destroy_raw,
2037+
BPF_CGROUP_INET6_GETSOCKNAME,
2038+
&user_ops,
2039+
AF_UNIX,
2040+
SOCK_DGRAM,
2041+
SERV4_REWRITE_IP,
2042+
SERV4_REWRITE_PORT,
2043+
SERV4_IP,
2044+
SERV4_PORT,
2045+
NULL,
2046+
ATTACH_REJECT,
2047+
},
18932048
{
18942049
SOCK_ADDR_TEST_GETPEERNAME,
18952050
"getpeername6: getpeername (stream)",
@@ -1922,6 +2077,22 @@ static struct sock_addr_test tests[] = {
19222077
NULL,
19232078
SUCCESS,
19242079
},
2080+
{
2081+
SOCK_ADDR_TEST_GETPEERNAME,
2082+
"getpeername6: attach prog with wrong attach type",
2083+
getpeername_v6_prog_load_raw,
2084+
getpeername_v6_prog_destroy_raw,
2085+
BPF_CGROUP_INET4_GETSOCKNAME,
2086+
&user_ops,
2087+
AF_INET6,
2088+
SOCK_DGRAM,
2089+
SERV6_REWRITE_IP,
2090+
SERV6_REWRITE_PORT,
2091+
SERV6_IP,
2092+
SERV6_PORT,
2093+
NULL,
2094+
ATTACH_REJECT,
2095+
},
19252096
{
19262097
SOCK_ADDR_TEST_GETPEERNAME,
19272098
"getpeername_unix: getpeername",
@@ -1938,6 +2109,22 @@ static struct sock_addr_test tests[] = {
19382109
NULL,
19392110
SUCCESS,
19402111
},
2112+
{
2113+
SOCK_ADDR_TEST_GETPEERNAME,
2114+
"getpeername_unix: attach prog with wrong attach type",
2115+
getpeername_unix_prog_load_raw,
2116+
getpeername_unix_prog_destroy_raw,
2117+
BPF_CGROUP_INET4_GETSOCKNAME,
2118+
&user_ops,
2119+
AF_UNIX,
2120+
SOCK_STREAM,
2121+
SERVUN_ADDRESS,
2122+
0,
2123+
SERVUN_REWRITE_ADDRESS,
2124+
0,
2125+
NULL,
2126+
ATTACH_REJECT,
2127+
},
19412128

19422129
/* getpeername - kernel calls */
19432130
{

0 commit comments

Comments
 (0)