Received: by 2002:a05:7412:40d:b0:e2:908c:2ebd with SMTP id 13csp50043rdf; Mon, 20 Nov 2023 15:58:53 -0800 (PST) X-Google-Smtp-Source: AGHT+IHg192S/re0Fq7lORI7/AQgBu8agshGUPDT8A0HO3kV676NC/GlARWjJbEBGaG4yPShTFqz X-Received: by 2002:a17:903:245:b0:1cf:6ccf:7599 with SMTP id j5-20020a170903024500b001cf6ccf7599mr977996plh.5.1700524733450; Mon, 20 Nov 2023 15:58:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700524733; cv=none; d=google.com; s=arc-20160816; b=MKGojHZxerSTD/daJvy+jZO7t7wMYzMlfwhmomIg7aKMliqFe3z3NxRNw+NvuVoWD0 XpkCTH+4XpwaNht7p7Hu+iH5qOhOv/hKht00gLSsAIFxPCwH/L4qFm4UBec90NZHA4gl 76nUzZOw5jkPIJ+oT8YCOkF2iPNZY9pHn8jRcipC/s4VPZNOuW7zkNxKiVZtGhZcrbTv H7AGkWdg4EgZ+QtekSA2SUzEMphMPqV7vcf0mrlbwy3ih/pJ27N849VETD1knYcY51K1 qcZWd+LNojk+oH50BcV7Wtjg2cKovmFNzg8itjUPFxCAFiZcRJ2T0pR9v9n0rrWBANrg sdJQ== 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=rnrAcFFJlTaTWrEDOlhOmzSEK/Ayvew57WsJeG2pZk8=; fh=oQRZOFrDQfXNJ7G92Ah9cs8vRP0rRtblCDc+u4U9urY=; b=MVZUfuQxg+IiIg2JJZa0+qYmGx1ySkHAPoFMIo4dS+jUVL1d8pYkAo/5gpBWyCoIzI QmA1IY6+hFv3o22AU9NjL4KVVgWV7vlkSJs2QrMkVKF8Rqg3y26SmXuWND68eUSSc0hx PWhcZk/7upqvYGMJ6yMErwDlQJ+gCUtFKIewk9+YzfoyxJbNijdW3N6Tb0GGrwxENxoA DHiLZ2kUIXKv6xQltqbvVRtqKiMFejC+8GdaIBu6uMgsagbwL5th0+NKz4fSfbkyqrNr NtJOO114jrVMwrvtiVKreYAmG0Hxp8VV5SuI/UXBgTPAhvocrSXrd62F/nYX7RirDWgE 35Zw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Pt33pMEF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 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 agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id e18-20020a17090301d200b001c9d96cbd97si7115301plh.66.2023.11.20.15.58.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Nov 2023 15:58:53 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Pt33pMEF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 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 agentk.vger.email (Postfix) with ESMTP id C789380B31EB; Mon, 20 Nov 2023 15:56:30 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232753AbjKTX4C (ORCPT + 99 others); Mon, 20 Nov 2023 18:56:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37258 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232846AbjKTXz5 (ORCPT ); Mon, 20 Nov 2023 18:55:57 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 015C8CD for ; Mon, 20 Nov 2023 15:55:51 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 05943C433C7; Mon, 20 Nov 2023 23:55:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1700524551; bh=ZmJrvmANp1kG9kAUuq4ZkamJ4qQyGfBTGbaFEhsSApg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Pt33pMEF/POpoykTVCH0esLyYbbCA2/MuiuNDDhdvAugx8KFmw1tKn0bSGo7z/oz+ uTpvArUvH/uYX6qe3ShTmgtb/T6RI1JePjh5tg6z8p4WQUWyFTWhQGtSjDAQi6USTW qKzFTWEAc1f0yTUnxW2TqUOqSj/TDffFDIrcVSJSKvu2b/rm32KMmTLetFUaxI2qal zzcfIzZ92zr1qyK6uxLuX4aO0Furel8hX3pF/t4W7FuxsrDGCs2C30kEhECaAG59Vm kYB+l7BGTqAm8k9FyACmKx1cePKJkZg6iGWC2yRou1kXBfFGtINk7Ro4mDGyALeYtE TEMF/bL6tIPNg== From: Mark Brown Date: Mon, 20 Nov 2023 23:54:32 +0000 Subject: [PATCH RFT v3 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: <20231120-clone3-shadow-stack-v3-4-a7b8ed3e2acc@kernel.org> References: <20231120-clone3-shadow-stack-v3-0-a7b8ed3e2acc@kernel.org> In-Reply-To: <20231120-clone3-shadow-stack-v3-0-a7b8ed3e2acc@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 , Kees Cook , jannh@google.com, bsegall@google.com, 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=ZmJrvmANp1kG9kAUuq4ZkamJ4qQyGfBTGbaFEhsSApg=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlW/Hhnma1u0qT3kkylcajBZLZYCk8NKYNAoP26I5f MjRNpjiJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZVvx4QAKCRAk1otyXVSH0GubB/ 930Z/P0fuK5MX34Cy4dkfAwusyWEBKeRlq5NwdEPpqMld6z0jmCDctq4ZM5xWaF1ZYbS+rLB1ZAuHU OWz4yL3h9ZysR3RtjxxJCdN+91hooUs0KMPMZjkwQ6b5Zlxd9VIP1oOqU1cyZCEEidqERh2jRelK+E bF31tT3a+VziuPw1P7FBseViqvx+pKNyUIkdof/DR2OnHkxe0578uGYGat1WoJnmImpaoO/qV7mJVy HcGbCOl/Djx4qpYi5WjVW0f6UgWHpRjRIqfxCLzpwG5+O7EMUGTWuh3ngitrCL7rb4jJnZ/QqDNu2I +xNCeJWCK33IoNahE8vywB6sFw8MZH 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,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.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 (agentk.vger.email [0.0.0.0]); Mon, 20 Nov 2023 15:56:30 -0800 (PST) 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 1108bd8e36d6..6adbfd14c841 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