Received: by 2002:a05:7412:251c:b0:e2:908c:2ebd with SMTP id w28csp1223394rda; Mon, 23 Oct 2023 06:27:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGZe3zyF8OWnxQckxztfFGt08D4cEnEFmWDH5WKjbY8KPJlB3OARneqDrKy46UK9u/bS7Tb X-Received: by 2002:a17:903:1106:b0:1c5:d0ba:429 with SMTP id n6-20020a170903110600b001c5d0ba0429mr6303358plh.4.1698067662776; Mon, 23 Oct 2023 06:27:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698067662; cv=none; d=google.com; s=arc-20160816; b=Mlt9o1QuRplAfbPoqxB0ishSWHljo0KEEOMF7uJ2KslmOP13trceE3DDydaRH3eaDi CecaPsJYo/4EpQHz4FP1YuYqpl3BntTy5gqz3A5Gax7FXRWCYy48xoII+3Ia5vejSkVW e3XzXGT4B+bXmIZ7WH+xOJrpRpEaqvBAcsAXHFA36uaQhkldDa/wSsyMcTQJoMpm74nd CtZckOfT7gkzuw2I9YmkTcKfntRA+QpB3VGEV523v9CW6F7YB88+5nuBoqM+5ZZxnxWy 8cMrfqwZ9UNHpK/WqFJDd8PQSzzwqyAAVsLufHMuzCgneU43wKUClf/S2wKsDf+/yQUn cdPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=n3nQ8xKR5Yik2X1z0V6YiUUt3YqACiT1yEygyCwA2qc=; fh=xOgJkz4bE+E4HUkOmCeGYyfcVGRNh88D8dGl4xMf3a0=; b=dfgG0J2NDilI7y9nhgpUte3gGdtVVkqO21pNHggL+63njvSPmCcHcWp4tZ4lC2EA/Q GlpfGUULrc8OlCB97VuHaDdl7bmWk/d32hieI38OKn1F2+RMgFKKx8D+ZNV1yoBgFE8u 3bdBIo2J5XzSs1bQO6ZHUSzSgKni0YA2yaoiqlEviGKfuUC6ge6f0BuNp71sygzIgiPu pEQlxIstGhwNBMQ9G+fVDqISTrCLG2cPWsMdImLzRlqvTNpc5R/4E5IO2wwAFPjBVzp1 fPvI8SiLKUWrft7n8Xh9aXBYuXtD9Drw+xihUBtfgsZDwsiBGfpK/s/SrH+GRw70Qk9F Wnow== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PWLcOKFh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id l19-20020a170902d35300b001ca7af18a99si6129679plk.564.2023.10.23.06.27.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Oct 2023 06:27:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PWLcOKFh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 09A88807C7CD; Mon, 23 Oct 2023 06:27:30 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231146AbjJWN0U (ORCPT + 99 others); Mon, 23 Oct 2023 09:26:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54968 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231143AbjJWNZ0 (ORCPT ); Mon, 23 Oct 2023 09:25:26 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 93C742D5E; Mon, 23 Oct 2023 06:23:52 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3D6AFC433CD; Mon, 23 Oct 2023 13:23:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1698067431; bh=7YKUNDbMUGXSSUeiwJ4pvwvRXBVAoVFkUMX3lRaprx0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=PWLcOKFhupYV9/bqMkM4lxQOSU/F1PNenDMqUP2nr8ywu6exhRiNukK+uIE+/Zw/c iU+iSf44SJ9vy/SBSkqAC+YxOtzhvgKTMBqc7TRBMBfZALr2dZDRuRlBDlB3EMaj/S XucKem9LvbMEQhmfOwcurZlACzDVBxyEzVI8wE6X7ANEfKHjtFde5bkUAFu+e3dbOH /HqHCchaB0EKA50WNP80jGAxcGnkzWPPKzvkPADrDoU42JXIisU5Qv9UF/x/aGgspD OAOuOjyXcNYyk8DnhXrvCRIokWRE/LP0SKZKFLnrLfcQThSCE2rzqmDL2Yrq6xTYCD EoRc0h+CkS3sg== From: Mark Brown Date: Mon, 23 Oct 2023 14:20:43 +0100 Subject: [PATCH RFC RFT 4/5] selftests/clone3: Allow tests to flag if -E2BIG is a valid error code MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20231023-clone3-shadow-stack-v1-4-d867d0b5d4d0@kernel.org> References: <20231023-clone3-shadow-stack-v1-0-d867d0b5d4d0@kernel.org> In-Reply-To: <20231023-clone3-shadow-stack-v1-0-d867d0b5d4d0@kernel.org> To: "Rick P. Edgecombe" , Deepak Gupta , Szabolcs Nagy , "H.J. Lu" , Florian Weimer , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Peter Zijlstra , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Daniel Bristot de Oliveira , Valentin Schneider , Christian Brauner , Shuah Khan Cc: linux-kernel@vger.kernel.org, Catalin Marinas , Will Deacon , linux-kselftest@vger.kernel.org, linux-api@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-0438c X-Developer-Signature: v=1; a=openpgp-sha256; l=1887; i=broonie@kernel.org; h=from:subject:message-id; bh=7YKUNDbMUGXSSUeiwJ4pvwvRXBVAoVFkUMX3lRaprx0=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlNnPGU1TmRkbNZV+PUcum00dEkiIMDqfUoWpyRl5x dSWGE7uJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZTZzxgAKCRAk1otyXVSH0MsuCA CBCxQGFxf1wABIz0HrZYeAmZPKrdLDZvInZAqm14LQGGXm+SenttiAoWPxh2g9cS5O0r/b5yDwhRk9 0kReorlYqDoFBe8QMuSijaS+TIvVfVyx7Izl8FtllIa0TI6F5H3DGnA7gOzdYHO7uKSSTyXXWxCybO vepIT1S7c8t51eEQox1oI3oHwxuoz9gZUX6+YvtzKAwvVQZkF72BwHB+Eq3hj4eodzm8Y4tYILokmS wKDbliHKE9QXK9IQ8/cxhuoNjpyhf9gmgYjWnfcLfgGUYzJvII30VWOCtWBY4jBF+slAgqS9yLcs5o WnIUWfg74tyCf7jv7//409H63hoNrb X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Mon, 23 Oct 2023 06:27:30 -0700 (PDT) The clone_args structure is extensible, with the syscall passing in the length of the structure. Inside the kernel we use copy_struct_from_user() to read the struct but this has the unfortunate side effect of silently accepting some overrun in the structure size providing the extra data is all zeros. This means that we can't discover the clone3() features that the running kernel supports by simply probing with various struct sizes. We need to check this for the benefit of test systems which run newer kselftests on old kernels. Add a flag which can be set on a test to indicate that clone3() may return -E2BIG due to the use of newer struct versions. Currently no tests need this but it will become an issue for testing clone3() support for shadow stacks, the support for shadow stacks is already present on x86. Signed-off-by: Mark Brown --- tools/testing/selftests/clone3/clone3.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/testing/selftests/clone3/clone3.c b/tools/testing/selftests/clone3/clone3.c index afe383689a67..f1802db82e4e 100644 --- a/tools/testing/selftests/clone3/clone3.c +++ b/tools/testing/selftests/clone3/clone3.c @@ -39,6 +39,7 @@ struct test { size_t size; size_function size_function; int expected; + bool e2big_valid; enum test_mode test_mode; filter_function filter; }; @@ -141,6 +142,11 @@ static void test_clone3(const struct test *test) ksft_print_msg("[%d] clone3() with flags says: %d expected %d\n", getpid(), ret, test->expected); if (ret != test->expected) { + if (test->e2big_valid && ret == -E2BIG) { + ksft_print_msg("Test reported -E2BIG\n"); + ksft_test_result_skip("%s\n", test->name); + return; + } ksft_print_msg( "[%d] Result (%d) is different than expected (%d)\n", getpid(), ret, test->expected); -- 2.30.2