[SRU Bionic 1/1] UBUNTU: SAUCE: Revert "bpf: test_maps, only support ESTABLISHED socks"

Thadeu Lima de Souza Cascardo cascardo at canonical.com
Fri Jun 4 11:50:47 UTC 2021


BugLink: https://bugs.launchpad.net/bugs/1839912

This reverts commit da8fdf4717bf4e40143115be8799ca0dd2688e8d.

This is upstream commit 5028027844cfc6168e39650abecd817ba64c9d98.

That commit fixes 1aa12bdf1bfb ("bpf: sockmap, add sock close() hook to remove
socks"), which is not included in bionic.

That one fixes a real bug (a bpf program leak), but has a lot of fixes
upstream, so is a potential regression. Given that sockmap bpf maps can
only be created by root userns CAP_NET_ADMIN capable processes, leave
this bug unfixed until there is some request for fixing it.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo at canonical.com>
---
 tools/testing/selftests/bpf/test_maps.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/tools/testing/selftests/bpf/test_maps.c b/tools/testing/selftests/bpf/test_maps.c
index 32e5410ecdcf..b528bac3a6e8 100644
--- a/tools/testing/selftests/bpf/test_maps.c
+++ b/tools/testing/selftests/bpf/test_maps.c
@@ -563,11 +563,7 @@ static void test_sockmap(int tasks, void *data)
 	/* Test update without programs */
 	for (i = 0; i < 6; i++) {
 		err = bpf_map_update_elem(fd, &i, &sfd[i], BPF_ANY);
-		if (i < 2 && !err) {
-			printf("Allowed update sockmap '%i:%i' not in ESTABLISHED\n",
-			       i, sfd[i]);
-			goto out_sockmap;
-		} else if (i >= 2 && err) {
+		if (err) {
 			printf("Failed noprog update sockmap '%i:%i'\n",
 			       i, sfd[i]);
 			goto out_sockmap;
@@ -691,7 +687,7 @@ static void test_sockmap(int tasks, void *data)
 	}
 
 	/* Test map update elem afterwards fd lives in fd and map_fd */
-	for (i = 2; i < 6; i++) {
+	for (i = 0; i < 6; i++) {
 		err = bpf_map_update_elem(map_fd_rx, &i, &sfd[i], BPF_ANY);
 		if (err) {
 			printf("Failed map_fd_rx update sockmap %i '%i:%i'\n",
@@ -787,7 +783,7 @@ static void test_sockmap(int tasks, void *data)
 	}
 
 	/* Delete the elems without programs */
-	for (i = 2; i < 6; i++) {
+	for (i = 0; i < 6; i++) {
 		err = bpf_map_delete_elem(fd, &i);
 		if (err) {
 			printf("Failed delete sockmap %i '%i:%i'\n",
-- 
2.30.2




More information about the kernel-team mailing list