diff options
Diffstat (limited to 'tools/testing/selftests/bpf/test_maps.c')
| -rw-r--r-- | tools/testing/selftests/bpf/test_maps.c | 12 | 
1 files changed, 11 insertions, 1 deletions
| diff --git a/tools/testing/selftests/bpf/test_maps.c b/tools/testing/selftests/bpf/test_maps.c index fe3a443a1102..50ce52d2013d 100644 --- a/tools/testing/selftests/bpf/test_maps.c +++ b/tools/testing/selftests/bpf/test_maps.c @@ -466,7 +466,7 @@ static void test_sockmap(int tasks, void *data)  	int one = 1, map_fd_rx, map_fd_tx, map_fd_break, s, sc, rc;  	struct bpf_map *bpf_map_rx, *bpf_map_tx, *bpf_map_break;  	int ports[] = {50200, 50201, 50202, 50204}; -	int err, i, fd, sfd[6] = {0xdeadbeef}; +	int err, i, fd, udp, sfd[6] = {0xdeadbeef};  	u8 buf[20] = {0x0, 0x5, 0x3, 0x2, 0x1, 0x0};  	int parse_prog, verdict_prog;  	struct sockaddr_in addr; @@ -548,6 +548,16 @@ static void test_sockmap(int tasks, void *data)  		goto out_sockmap;  	} +	/* Test update with unsupported UDP socket */ +	udp = socket(AF_INET, SOCK_DGRAM, 0); +	i = 0; +	err = bpf_map_update_elem(fd, &i, &udp, BPF_ANY); +	if (!err) { +		printf("Failed socket SOCK_DGRAM allowed '%i:%i'\n", +		       i, udp); +		goto out_sockmap; +	} +  	/* Test update without programs */  	for (i = 0; i < 6; i++) {  		err = bpf_map_update_elem(fd, &i, &sfd[i], BPF_ANY); |