On Thu, Dec 19, 2019 at 4:06 PM Andrey Ignatov <rdna@xxxxxx> wrote: > > It's follow-up for discussion [1] > > CHECK and CHECK_FAIL macros in test_progs.h can affect errno in some > circumstances, e.g. if some code accidentally closes stdout. It makes > checking errno in patterns like this unreliable: > > if (CHECK(!bpf_prog_attach_xattr(...), "tag", "msg")) > goto err; > CHECK_FAIL(errno != ENOENT); > > , since by CHECK_FAIL time errno could be affected not only by > bpf_prog_attach_xattr but by CHECK as well. > > Fix it by saving and restoring errno in the macros. There is no "Fixes" > tag since no problems were discovered yet and it's rather precaution. > > test_progs was run with this change and no difference was identified. > > [1] https://lore.kernel.org/bpf/20191219210907.GD16266@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx/ > > Signed-off-by: Andrey Ignatov <rdna@xxxxxx> > --- LGTM. Doesn't hurt for sure. Acked-by: Andrii Nakryiko <andriin@xxxxxx> > tools/testing/selftests/bpf/test_progs.h | 4 ++++ > 1 file changed, 4 insertions(+) >