Received: by 2002:a05:7412:419a:b0:f3:1519:9f41 with SMTP id i26csp4056324rdh; Tue, 28 Nov 2023 10:32:30 -0800 (PST) X-Google-Smtp-Source: AGHT+IEHehXc9TRF2oWcLPMh/jBQW+8DsOUM9YZWW0Pcxj3S1O0A+L7wszzjJr/ayert3j4UMZrx X-Received: by 2002:a05:6a20:a11d:b0:18c:f734:64e5 with SMTP id q29-20020a056a20a11d00b0018cf73464e5mr1619217pzk.44.1701196350417; Tue, 28 Nov 2023 10:32:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701196350; cv=none; d=google.com; s=arc-20160816; b=s0+4yNCnWP0TD/FConmYHOtGTGRCP86HJgGgEYA07OSDlC1aql5BnNY3stcIsJI0eJ WYFgcmHHZhtDXWldHAjLKnGhdR0lh0flM5YMxHHUZkTRlU4UFcL7x2DA+ii22+SdHOlb QOsti9RMXwWRto+qK/iKcy9/GOjEek/G3j82TPOys1gA6Y0pWKKAE/6/2KsnyIM+yE6M sU4s/8eMadzU1cVgWUkJZlSEZAOshtbR0F2J14NWvxKq4MmLV40XgpA2r6Q5JxTzkXxP anxlQpjBdu1FBTEKS1WBPO/u9hwVICWMTYhvkwczAQuOQ90p8+q5rKr8BIKuGAcRsgUu 1iPw== 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=dZBcE91hBMuB4BZvUXWu/TPBCWcoQVSZcxcDaE3npvewLhYH9aCHmxX/XIcK9rUrrA H0CmmeKKk8KmF1zQm00Zdw8hAXTcJHJ+G5gU27dZuo+O0y4d9v+UBx1hFRsbZvOqrv0T wTcHPBDZWWfLnNomREQl/jmblH/Eurz5wh9D0ocNxvIFJpcuALaQPp07GF8mIdHPCZyC c8aw8vajDJ3K4qU14xQjgMzg9DgoPTE0VQD2PmZpM7t7yWtFwgQsyW87ocMi1ZjFzGDA wnV/4fh58ZuS3A3cOz5G9n+OKPg05xBtpk/UH/V1XdBTSWVrZtodRv82Ab4x7qOIcFhv dOag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bRRPdnJW; 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 in23-20020a17090b439700b00283a251c077si12244083pjb.94.2023.11.28.10.32.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Nov 2023 10:32:30 -0800 (PST) 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=bRRPdnJW; 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 ADE9D8067B41; Tue, 28 Nov 2023 10:32:26 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234873AbjK1ScD (ORCPT + 99 others); Tue, 28 Nov 2023 13:32:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52426 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234895AbjK1Sby (ORCPT ); Tue, 28 Nov 2023 13:31:54 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C42E41BF for ; Tue, 28 Nov 2023 10:32:00 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9D83FC433C9; Tue, 28 Nov 2023 18:31:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701196320; bh=ZmJrvmANp1kG9kAUuq4ZkamJ4qQyGfBTGbaFEhsSApg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=bRRPdnJWTyWTOJLKxDhbNqQPPakDf7jSeYLCpwCvuwFOC8YiAmWgqlfM0yycEyiXi 5z4jFneIoDjrzYSZO4pN12p/T87khP7v6lYXLVGtsBgocZEGN+1mGx9vcy3zQIe6i7 Wv+qkWyn5MwauHAaCCAc7jiWFOEI8ELy9d5cnWX0hz/xHYSkIGdONyciCxMr6JrX5K h24DldVtyav8uBj64tFDxRuVrlfnGH+Rnr3ABf2uaXKiGwPxTbQqVY4Hrf8PZbdK34 MdCp6Yy5HLztoibzCEtyRIcBOz8ipH8iOIFVBub2+Ze/akP8upwmrUsXEOnY1pOJZr 4y54CW1FIckYw== From: Mark Brown Date: Tue, 28 Nov 2023 18:22:42 +0000 Subject: [PATCH RFT v4 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: <20231128-clone3-shadow-stack-v4-4-8b28ffe4f676@kernel.org> References: <20231128-clone3-shadow-stack-v4-0-8b28ffe4f676@kernel.org> In-Reply-To: <20231128-clone3-shadow-stack-v4-0-8b28ffe4f676@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/pANAwAKASTWi3JdVIfQAcsmYgBlZjH/hLYUqIk8YkMWrnYTQDK6SoSooZNV9WqVJEra rQWZJYaJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZWYx/wAKCRAk1otyXVSH0HsGCA CBN5M9Evdz38u2yweh3AiOjPMl5BtgwOF7gMfg0M2esXAMJiAzwKmF5H0EItloAMcOENsXWp4xI/0r bI6N1iGh4NAeTPV7Asy8Ys8gsxyKPER6HfvM+vJD2Rc7yHTMmlehL9GWdaSlk1mKXYku1uDazCR2sD QPhjZXnkfNvgcin9adCia/XOH9kv7wvZQ/xoN6FUGnhpvkL1n5+XBpGGh2orNlo0O+SIwhWsV3i4Mz Sbo3VzBJDoJeyLnVICtvhZDTLwR7JmvSAR5ZVykdSDHwcMb4cCCRdk+H0fPfiPylrFyNg/aXfKujpn xVFKWNipIfBFAgGUFYwNU6w4/zSyPf 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 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]); Tue, 28 Nov 2023 10:32:26 -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