Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp10422071ybi; Thu, 11 Jul 2019 05:06:41 -0700 (PDT) X-Google-Smtp-Source: APXvYqzBmAzML+JVebhrg1PERvpPGkYQpjg/x5Jqn7cMPUu9ivk3h9O3s1zFFNMOwS/G7EJh9/7J X-Received: by 2002:a63:fa57:: with SMTP id g23mr3989856pgk.75.1562846801005; Thu, 11 Jul 2019 05:06:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562846800; cv=none; d=google.com; s=arc-20160816; b=s56g6cB356vVQjJ+gw1qkCrw9oJ2MUbv2fewTECuZ9/Z83lqGGrgIYBZNHqybB0raJ u8yegfMfRIg86LNVk5Xhwl2weOXuFSIPVDRrLgv+TEoUFK/zUOz6IJwQ/3P/lP4KUwZM xJu56/sM20wqZdXbOP19axR5LpKPbQ5KmYd6cJ7cD5eR1kxKrmtSfOvB4wrS/dEQ8axR PSt9o28tE72SMA9F6FZF3fq+QnW5VijUK3nN5qIqM+nvkl2pHEH7guWgtKnJCKOp/uXT 5vBjWWCGPrKriQPA6HYIXPPAC5upEjxhv7qMlUrbzMJePP9Qv4VUL1+xJkkQ0rcD5ZYG aiEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=fIJT5H6LYisrbd6vwnAbhttHQR+HPbOb2XK62GqS1Hw=; b=PobNA4OjS67T5i8TeE9uz8WLxnIYBcSLQp8UMz9+fGUHKt+28y4ZXmES0ANrSEinhm v0zLv3IsOn8VZ6BBmSLyUmEaNMqF6/s0HNdue51INSCEMDibGYzmg/fdqwiPIHsiFpJG Gfs3ovVlj6E8Z3VX8/tVk/0geZOX+Adf5hni/DiZYJamBK9pTHhJ4fI+6YrKbb+mIZZl vIanq7V3eUec+SrX2iW/HQ5mJ1f5OczF6eSdxI8AlmDu2eR4mzAcy9u9NKMCS7Rg7Cx0 pxHbCeqW0jQs/AcMr8Qd+Vzwb9vBKoCHYGkaGd/yLew/URjlkk8SI1Xrv5l333lZz+4N ON7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kinvolk.io header.s=google header.b=MHpOZCKs; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 207si4990366pfu.258.2019.07.11.05.06.09; Thu, 11 Jul 2019 05:06:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kinvolk.io header.s=google header.b=MHpOZCKs; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728549AbfGKMEa (ORCPT + 99 others); Thu, 11 Jul 2019 08:04:30 -0400 Received: from mail-lf1-f66.google.com ([209.85.167.66]:45261 "EHLO mail-lf1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728194AbfGKMEa (ORCPT ); Thu, 11 Jul 2019 08:04:30 -0400 Received: by mail-lf1-f66.google.com with SMTP id u10so3854530lfm.12 for ; Thu, 11 Jul 2019 05:04:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kinvolk.io; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=fIJT5H6LYisrbd6vwnAbhttHQR+HPbOb2XK62GqS1Hw=; b=MHpOZCKskoCvtbYHgam0V9As0k81++UdVULTKLpyLcH1oU0/shthaJcSS97lvqKcN0 TZnB01QXcJlzmc3x0nZeh8A2YzQl6Q2zoct2ZDuOh5d3Waced04J6SZh7moU0lKXgPRj +6l+dCjwuoSz/iS3VYY953WTyZ9VZlCvXCvvY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=fIJT5H6LYisrbd6vwnAbhttHQR+HPbOb2XK62GqS1Hw=; b=eypioZL/VcYBwc6TkSM7qUxYnl2wCGnJRfLvYVns5Pu6hUQYFnOe1atTK79t9FMXRZ I6NoGvT8ELLkXhXkg5QUOV8GfWQLUCh+Ar1lijcPikrVWFQ4m5r+8YMD2yDMYZUpT9dc RK4NBO8QV8ZvmdP/K3ILqhsU0V8cqPKUpF2kdH/vjiCigd3Ep+MJBOliUSrsXPNqiTQe uKBG+xmBfqGO9UzVvdmaUy7VSHTUbQgOkDk6XesIJx5NXfe5hRnvGxfSF/7iHmGZGKlj pYmUmx8jaII5wlG0Jc+XnyyWrcZ0yuN2HaPO3QNi6Mr9tsU3vfHS6QWxE9pMM6FKMNsU vzhw== X-Gm-Message-State: APjAAAXDaR+jNHh16A2OKYkvvspJd88Dv4jyZwbiv5KzRSJ6h80f6j5O 5T/i0uiwg60C2ev1ml0+pf0blk+9b/Zr18iHIuFuL/ON X-Received: by 2002:ac2:47fa:: with SMTP id b26mr1661369lfp.82.1562846668240; Thu, 11 Jul 2019 05:04:28 -0700 (PDT) MIME-Version: 1.0 References: <20190708163121.18477-1-krzesimir@kinvolk.io> <20190708163121.18477-3-krzesimir@kinvolk.io> In-Reply-To: From: Krzesimir Nowak Date: Thu, 11 Jul 2019 14:04:17 +0200 Message-ID: Subject: Re: [bpf-next v3 02/12] selftests/bpf: Avoid a clobbering of errno To: Andrii Nakryiko Cc: open list , Alban Crequy , =?UTF-8?Q?Iago_L=C3=B3pez_Galeiras?= , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Song Liu , Yonghong Song , "David S. Miller" , Jakub Kicinski , Jesper Dangaard Brouer , John Fastabend , Stanislav Fomichev , Networking , bpf , xdp-newbies@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jul 11, 2019 at 1:52 AM Andrii Nakryiko wrote: > > On Mon, Jul 8, 2019 at 3:42 PM Krzesimir Nowak wro= te: > > > > Save errno right after bpf_prog_test_run returns, so we later check > > the error code actually set by bpf_prog_test_run, not by some libcap > > function. > > > > Changes since v1: > > - Fix the "Fixes:" tag to mention actual commit that introduced the > > bug > > > > Changes since v2: > > - Move the declaration so it fits the reverse christmas tree style. > > > > Cc: Daniel Borkmann > > Fixes: 832c6f2c29ec ("bpf: test make sure to run unpriv test cases in t= est_verifier") > > Signed-off-by: Krzesimir Nowak > > --- > > tools/testing/selftests/bpf/test_verifier.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/tools/testing/selftests/bpf/test_verifier.c b/tools/testin= g/selftests/bpf/test_verifier.c > > index b8d065623ead..3fe126e0083b 100644 > > --- a/tools/testing/selftests/bpf/test_verifier.c > > +++ b/tools/testing/selftests/bpf/test_verifier.c > > @@ -823,16 +823,18 @@ static int do_prog_test_run(int fd_prog, bool unp= riv, uint32_t expected_val, > > __u8 tmp[TEST_DATA_LEN << 2]; > > __u32 size_tmp =3D sizeof(tmp); > > uint32_t retval; > > + int saved_errno; > > int err; > > > > if (unpriv) > > set_admin(true); > > err =3D bpf_prog_test_run(fd_prog, 1, data, size_data, > > tmp, &size_tmp, &retval, NULL); > > Given err is either 0 or -1, how about instead making err useful right > here without extra variable? > > if (bpf_prog_test_run(...)) > err =3D errno; I change it later to bpf_prog_test_run_xattr, which can also return -EINVAL and then errno is not set. But this one probably should not be triggered by the test code. So not sure, probably would be better to keep it as is for consistency? > > > + saved_errno =3D errno; > > if (unpriv) > > set_admin(false); > > if (err) { > > - switch (errno) { > > + switch (saved_errno) { > > case 524/*ENOTSUPP*/: > > ENOTSUPP is defined in include/linux/errno.h, is there any problem > with using this in selftests? I just used whatever there was earlier. Seems like is not copied to tools include directory. > > > printf("Did not run the program (not supported)= "); > > return 0; > > -- > > 2.20.1 > > --=20 Kinvolk GmbH | Adalbertstr.6a, 10999 Berlin | tel: +491755589364 Gesch=C3=A4ftsf=C3=BChrer/Directors: Alban Crequy, Chris K=C3=BChl, Iago L= =C3=B3pez Galeiras Registergericht/Court of registration: Amtsgericht Charlottenburg Registernummer/Registration number: HRB 171414 B Ust-ID-Nummer/VAT ID number: DE302207000