On Tue, Sep 15, 2020 at 4:39 AM Ilya Leoshkevich <iii@xxxxxxxxxxxxx> wrote: > > getsetsockopt() calls getsockopt() with optlen == 1, but then checks > the resulting int. It is ok on little endian, but not on big endian. > > Fix by checking char instead. > > Fixes: 8a027dc0 ("selftests/bpf: add sockopt test that exercises sk helpers") > Signed-off-by: Ilya Leoshkevich <iii@xxxxxxxxxxxxx> > --- > > v1->v2: Also pass a single byte to log_err. > Acked-by: Andrii Nakryiko <andriin@xxxxxx> > tools/testing/selftests/bpf/prog_tests/sockopt_sk.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/tools/testing/selftests/bpf/prog_tests/sockopt_sk.c b/tools/testing/selftests/bpf/prog_tests/sockopt_sk.c > index 5f54c6aec7f0..b25c9c45c148 100644 > --- a/tools/testing/selftests/bpf/prog_tests/sockopt_sk.c > +++ b/tools/testing/selftests/bpf/prog_tests/sockopt_sk.c > @@ -45,9 +45,9 @@ static int getsetsockopt(void) > goto err; > } > > - if (*(int *)big_buf != 0x08) { > + if (*big_buf != 0x08) { > log_err("Unexpected getsockopt(IP_TOS) optval 0x%x != 0x08", > - *(int *)big_buf); > + (int)*big_buf); > goto err; > } > > -- > 2.25.4 >