lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <8601d952a9b55c901d849b856698b2567eafcd09a9b80d144e786a9d0b037d9e@mail.kernel.org>
Date: Fri, 31 Oct 2025 08:42:07 +0000 (UTC)
From: bot+bpf-ci@...nel.org
To: bastien.curutchet@...tlin.com,bjorn@...nel.org,magnus.karlsson@...el.com,maciej.fijalkowski@...el.com,jonathan.lemon@...il.com,ast@...nel.org,daniel@...earbox.net,andrii@...nel.org,martin.lau@...ux.dev,eddyz87@...il.com,song@...nel.org,yonghong.song@...ux.dev,john.fastabend@...il.com,kpsingh@...nel.org,sdf@...ichev.me,haoluo@...gle.com,jolsa@...nel.org,mykolal@...com,shuah@...nel.org,davem@...emloft.net,kuba@...nel.org,hawk@...nel.org
Cc: thomas.petazzoni@...tlin.com,alexis.lothore@...tlin.com,netdev@...r.kernel.org,bpf@...r.kernel.org,linux-kselftest@...r.kernel.org,linux-kernel@...r.kernel.org,bastien.curutchet@...tlin.com,ast@...nel.org,andrii@...nel.org,daniel@...earbox.net,martin.lau@...nel.org,eddyz87@...il.com,yonghong.song@...ux.dev,clm@...a.com,ihor.solodrai@...ux.dev
Subject: Re: [PATCH bpf-next v7 09/15] selftests/bpf: test_xsk: Don't exit immediately when xsk_attach fails


```
commit f4ff202b333a83faed1f820153ca90a030e95808
Author: Bastien Curutchet (eBPF Foundation) <bastien.curutchet@...tlin.com>

selftests/bpf: test_xsk: Don't exit immediately when xsk_attach fails

This commit changes xsk_reattach_xdp() and xsk_attach_xdp_progs() from
void to int return types to propagate errors instead of calling
exit_with_error(), allowing tests to continue after attachment failures.

> diff --git a/tools/testing/selftests/bpf/test_xsk.c b/tools/testing/selftests/bpf/test_xsk.c
> index 7db1d974e..0adb6c0b9 100644
> --- a/tools/testing/selftests/bpf/test_xsk.c
> +++ b/tools/testing/selftests/bpf/test_xsk.c
> @@ -1643,7 +1643,7 @@ static bool xdp_prog_changed_tx(struct test_spec *test)
>  	return ifobj->xdp_prog != test->xdp_prog_tx || ifobj->mode != test->mode;
>  }
>
> -static void xsk_reattach_xdp(struct ifobject *ifobj, struct bpf_program *xdp_prog,
> +static int xsk_reattach_xdp(struct ifobject *ifobj, struct bpf_program *xdp_prog,
>  			     struct bpf_map *xskmap, enum test_mode mode)
>  {
>  	int err;
> @@ -1652,31 +1652,40 @@ static void xsk_reattach_xdp(struct ifobject *ifobj, struct bpf_program *xdp_pro
>  	err = xsk_attach_xdp_program(xdp_prog, ifobj->ifindex, mode_to_xdp_flags(mode));
>  	if (err) {
>  		ksft_print_msg("Error attaching XDP program\n");
> -		exit_with_error(-err);
> +		return err;
>  	}
>
>  	if (ifobj->mode != mode && (mode == TEST_MODE_DRV || mode == TEST_MODE_ZC))
>  		if (!xsk_is_in_mode(ifobj->ifindex, XDP_FLAGS_DRV_MODE)) {
>  			ksft_print_msg("ERROR: XDP prog not in DRV mode\n");
> -			exit_with_error(EINVAL);
> +			return -EINVAL;
>  		}
>
>  	ifobj->xdp_prog = xdp_prog;
>  	ifobj->xskmap = xskmap;
>  	ifobj->mode = mode;
> +
> +	return 0;

Can xsk_reattach_xdp() leave the XDP program attached when the mode check
fails?

The flow is:
1. xsk_detach_xdp_program() removes old XDP program
2. xsk_attach_xdp_program() attaches new program (succeeds)
3. xsk_is_in_mode() check fails
4. ifobj state updated to reflect new attachment
5. Returns -EINVAL

At this point the new XDP program is attached to the interface but the
function returned an error. Should the newly attached program be detached
on this error path, or should the ifobj state updates be moved after all
checks pass?

>  }
>
> -static void xsk_attach_xdp_progs(struct test_spec *test, struct ifobject *ifobj_rx,
> +static int xsk_attach_xdp_progs(struct test_spec *test, struct ifobject *ifobj_rx,
>  				 struct ifobject *ifobj_tx)
>  {

[ ... ]

> @@ -1789,7 +1798,8 @@ static int testapp_validate_traffic(struct test_spec *test)
>  		}
>  	}
>
> -	xsk_attach_xdp_progs(test, ifobj_rx, ifobj_tx);
> +	if (xsk_attach_xdp_progs(test, ifobj_rx, ifobj_tx))
> +		return TEST_FAILURE;
>  	return __testapp_validate_traffic(test, ifobj_rx, ifobj_tx);
>  }


```

---
AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md

In-Reply-To-Subject: `selftests/bpf: test_xsk: Don't exit immediately when xsk_attach fails`
CI run summary: https://github.com/kernel-patches/bpf/actions/runs/18966766839

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ