From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6311DE77188 for ; Fri, 10 Jan 2025 03:34:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9BDCB6B008C; Thu, 9 Jan 2025 22:34:31 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 96CB16B0092; Thu, 9 Jan 2025 22:34:31 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 834386B0093; Thu, 9 Jan 2025 22:34:31 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 691E76B008C for ; Thu, 9 Jan 2025 22:34:31 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 1D21E1607D1 for ; Fri, 10 Jan 2025 03:34:31 +0000 (UTC) X-FDA: 82990124742.07.680DCB6 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by imf20.hostedemail.com (Postfix) with ESMTP id 12DDD1C000A for ; Fri, 10 Jan 2025 03:34:28 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=tg4ro0sI; dmarc=none; spf=pass (imf20.hostedemail.com: domain of charlie@rivosinc.com designates 209.85.214.177 as permitted sender) smtp.mailfrom=charlie@rivosinc.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736480069; a=rsa-sha256; cv=none; b=n0XeiT9cMfxI+rexn4rviSqwsyiJb3sAYk8/5lSXBYY2M0L6E27RnTyIza/aMzoJgwZm12 yruAnT8XPBXknFKH9Ba2h9qytNFfjZny1QXB4UVyWR7zy8SgtgV0v/udxslBCEG2zWkybx G92K0WjFNfB/S48ajftYieoqVnn3ct8= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=tg4ro0sI; dmarc=none; spf=pass (imf20.hostedemail.com: domain of charlie@rivosinc.com designates 209.85.214.177 as permitted sender) smtp.mailfrom=charlie@rivosinc.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736480069; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Viayt1DprygJVfkBr8f2Q096yWM1X8ypOSSUQGDK3YM=; b=1LmK4mz1kKutAD0+RCN3vWCeF/rErwqq14OWI3iSLxseXZRhtziqbsFR0ffCDUvkewHzvb tgZ07kM2w7gE9W/YJsaVW9qkFmZQdmcgexhkMDMRVSzokLSnaHziJez1oWCbXwbuJI+4vg b9RaxK/aAsBpeQJggnB73nLNyO6WOHk= Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2166651f752so33354735ad.3 for ; Thu, 09 Jan 2025 19:34:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736480068; x=1737084868; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=Viayt1DprygJVfkBr8f2Q096yWM1X8ypOSSUQGDK3YM=; b=tg4ro0sIPxKIvtzAchigg/U+yyn25uaxELH3pe0en+YRmloPIswrmDbkgR2z2BTkaY K1PC6JcePAPQYhY5g1ocnfUtnsnxuYtiLmAv5u+YhGt8SW89YJVP9w4X7Co6UHaTDeFc SGt0OVNc5hSZW7TdB3UNHb0oz0lbWivWO+PI3e9MWQVNwZEAMftdbz3K5LDGpteS7jT5 GKgowyMIbnonsGwZcwOQtiI13XXmyIaKPW4n3EhQm+HtX4n3dXtjGHINPFnLOGQnDA3/ PIrtHp/bVdyxCy0x48S0hLxpIzpRM0niVyEqgkdN1cFgN/y8CcKDGTddIsbxcWhyNO6r o9eQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736480068; x=1737084868; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Viayt1DprygJVfkBr8f2Q096yWM1X8ypOSSUQGDK3YM=; b=CmKwjfVetNh1/yMWjLQFTUopXu+CgsoMmlZ+A6EJa/9sVyIUu8YBD7Lxl9zTl0Dd95 zkTCCFbH+OJSlx3TtJs6ZTkNrto00WZJnMUWNUIehcBpwWhJIg1+R5hwYQ1QRxC7Cmw2 TStAlg1WhgY0DpZ+sqMzkQb24AgTsx7LCWZdmrcqtfzum9uzeHjgSE4q0q9Llj8C8bmi gZYyrsr0GcfUv8y79WrGqQ8TLH0sgYfDOHzoRWjfL79F/3bAOTFcpjOdgTMSm9UOfH5M y2Dn3hfY7VPqtiaLqiScc2qLRP0SYo1HARmigSScblJvu5nb/4W/pr+5NHQBrf4lAzv8 lTNA== X-Forwarded-Encrypted: i=1; AJvYcCXzwRcyPilO1aB/EwlxnKNGiGtREwf1kkxBdcXQVCHY8OxygSn7htVvhP69dBKB/4s/SuLgtIkhWA==@kvack.org X-Gm-Message-State: AOJu0YzMVX1a+5AZTcf2XLrl2bPT9HmQVBhr6LWqPtG7Nwvw9MIVszHk Fbjn4kQq2ctm2At3CW9weRlWgAT6kLmkFy7nnTNiXphvEx2TL2Iars/fXw7T8ZQ= X-Gm-Gg: ASbGnctuUSGvgWg9lgZN31tJ5rdmK4O/0IiBShxxbs8sRcX7MK1TBzynpVwa4yBSd15 Makuj31apXTImEPH+XpQEceTiRv85biiKYxktCagHqnf58gQwu+fGM6+4ILuIXGELhyN9D/ccWQ FOuvxCShtwKegRMpgQQ7EfvtRRPsGBHNedZWiQyD6oo7vy+nmrWr6KvAZTItzcnDrBW8c97+iEs XpjsdQYa8yLRjZjV+DNerhoNqWd8NFYYKMG/NziEhCrLVxwQgw6 X-Google-Smtp-Source: AGHT+IG3bbMYbkS4jJPSzQ9p7FyUYg9x1B/aqRiSj2rt9ftAdecMCL/6FTOfSLcR8vnjUeA3BTKFRA== X-Received: by 2002:a05:6a00:1c92:b0:725:e499:5b86 with SMTP id d2e1a72fcca58-72d21fdfc66mr14107164b3a.20.1736480067688; Thu, 09 Jan 2025 19:34:27 -0800 (PST) Received: from ghost ([2601:647:6700:64d0:691c:638a:ff10:3765]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72d406a4dddsm569643b3a.155.2025.01.09.19.34.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Jan 2025 19:34:27 -0800 (PST) Date: Thu, 9 Jan 2025 19:34:24 -0800 From: Charlie Jenkins To: Celeste Liu Cc: "Dmitry V. Levin" , Oleg Nesterov , Paul Walmsley , Palmer Dabbelt , Eric Biederman , Kees Cook , Shuah Khan , Albert Ou , Alexandre Ghiti , Andrea Bolognani , =?iso-8859-1?Q?Bj=F6rn_T=F6pel?= , Thomas Gleixner , Ron Economos , Andrew Jones , Quan Zhou , Felix Yan , Ruizhe Pan , Guo Ren , Yao Zi , Eugene Syromyatnikov , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, =?iso-8859-1?Q?Bj=F6rn_T=F6pel?= Subject: Re: [PATCH v4 2/2] riscv: selftests: Add a ptrace test to verify syscall parameter modification Message-ID: References: <20241226-riscv-new-regset-v4-0-4496a29d0436@coelacanthus.name> <20241226-riscv-new-regset-v4-2-4496a29d0436@coelacanthus.name> <20241226133459.GA30481@strace.io> <2e09aedc-44ba-40e3-ae93-1d6dc21b5eb1@coelacanthus.name> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <2e09aedc-44ba-40e3-ae93-1d6dc21b5eb1@coelacanthus.name> X-Stat-Signature: eum3i35pgbsbd7hbn66m5aeb785h6znf X-Rspam-User: X-Rspamd-Queue-Id: 12DDD1C000A X-Rspamd-Server: rspam08 X-HE-Tag: 1736480068-481720 X-HE-Meta: U2FsdGVkX1/nVDCIsyY653UE+3iI5zrBMQsw77Qyt4NZojUW7EWe/LaQ3XMHUu33uUuoClFXhNf5I+iKHPFRe8LY/hSb1TiNbG2Ia99pO3fQW5pQOGXUYq/HMEWGLWJHXgr+Dpw37dmneRA0+o/M3wCr7U9Q6a3KWdQDgQUuWDVN97ajkeEDxMLLS6SgHkDS1JUUi6AVcVOUUC7xw6T/kp4uFCFiDeYTiBNwE3ElRB/NynXyk07kt2a9YmczqnIgPFx0546zE1wmdaB9cf+k4hQ24sy7lojdPS3Ti4KcAjlBCPldzC1IcEiKhgD0EsmP4ZJB2RdkWx4y8lfE0KEYjWqlCWPt5cKSN1ZOS3Phxo1r30+xYE1cgFIXqpykcybP/N1U3FuHd4/cc1Wxa5mCADs+IOEOMIgUFlD7eXUzAazwUf2AkAvTubpGs8OTYQpvAT/5zFmMJ6sFPGESUO1CXbVQRdTpcBDouheAcCdgPlxXmHRHaoOGImUZhDvZ2O0WcuwrS27UMYEbOeFjJk4lcTg97bmL77VlTSnuBQBxQwlo/1U/qcIRwHyCrWQ47gAudm9qlUWXhS89LxdzXoI+e+PowMFmPAij1n7U11kA0yH4VjbnLNRcVoHufhoF1Jw69cuhfTf0EUVqQzoaltnXCEbStqrbgfbN+CRwt51oxJE3fmXr2iV1wj6MLDeYBC1xjh/wbF8mX+iHx/huerj13LF1nXqr2BC/8wF46gcVF1k1r/SUgUUaW45YDNDTMarjGHu55DZws4QWetdGyIKnyUS0S62/CrBA8O0yoML0zHZ+f/XYOGU21C84PvEdZvZzUsouXLvhDduYuOdgan2h8vBQwBbAbVBr9cr/dOrGWzt0KoT51ExIdayzrjVXdOo1WifNbiLamv6rzow3euZiNrCDPteJtdICSxuoXD8eO6CFuyC+APB00D8eM1TyuG2JFmc6l6w2I6BfYRaVqEP QGxJDOwD WBr1iyHoZ+4uB8IWQEEwagUN3hkSGN+uDHu1BnCCCMklwOFuKdeHlkMBOIzOYsKr0UbMpbu/rl5SsMI+HQGnx6mYYVKTv2h1MzpNMGjQAnco2bc6CrgoXkZcFWVLFG+LcZfSjNJT9/JF1UE3QUKI9qLGtZP9yvJi1sg3Aj2HADGszi76tI0IIGDLigcSHUWk7pqsBVUgQbG37yUfLkr61ph82RJ2ZPMBrjbz62lKxJf3gYM6+g8J+cxxIVPT6FUrxN2Fdj2I3KMU77c/6N5+UdleSHLYYHMsCPMJpp+qLo0/Wp/15Jxlsq9z4pNTRIOk7co36CqE5Tm8i7BX4b1TAwJwcyxx7n+8bByloPQ7ftvazptSMJjw1LTGUenr3VHM4DCwRMcGdrujpprDQ/pUUZXSAZUDGajfv+jMqoVeG00soHAFpK42F2f5iTy7PS1WlNmQ0ZyR5O2Svyc+S5CfQ4gaAu31U6tOPNRaHyEdx2Wvz+iZKFys5uBB/E0jMVEZ3elqo2PoKnIFF5NRR9xYvhGjEiA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000004, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, Dec 26, 2024 at 11:21:59PM +0800, Celeste Liu wrote: > > On 2024-12-26 21:35, Dmitry V. Levin wrote: > > On Thu, Dec 26, 2024 at 06:52:52PM +0800, Celeste Liu wrote: > >> This test checks that orig_a0 allows a syscall argument to be modified, > >> and that changing a0 does not change the syscall argument. > >> > >> Co-developed-by: Quan Zhou > >> Signed-off-by: Quan Zhou > >> Co-developed-by: Charlie Jenkins > >> Signed-off-by: Charlie Jenkins > >> Reviewed-by: Björn Töpel > >> Signed-off-by: Celeste Liu > > [...] > >> diff --git a/tools/testing/selftests/riscv/abi/ptrace.c b/tools/testing/selftests/riscv/abi/ptrace.c > >> new file mode 100644 > >> index 0000000000000000000000000000000000000000..023695352215bb5de3f91c1a6f5ea3b4f9373ff9 > >> --- /dev/null > >> +++ b/tools/testing/selftests/riscv/abi/ptrace.c > > [...] > >> + if (ptrace(PTRACE_GET_SYSCALL_INFO, pid, PTRACE_SYSCALL_INFO_ENTRY, &syscall_info_entry)) > >> + perr_and_exit("failed to get syscall info of entry\n"); > >> + result->orig_a0 = syscall_info_entry->entry.args[0]; > >> + if (ptrace(PTRACE_GET_SYSCALL_INFO, pid, PTRACE_SYSCALL_INFO_EXIT, &syscall_info_exit)) > >> + perr_and_exit("failed to get syscall info of exit\n"); > >> + result->a0 = syscall_info_exit->exit.rval; > > > > I'm sorry but this is not how PTRACE_GET_SYSCALL_INFO should be used. > > > > PTRACE_GET_SYSCALL_INFO operation takes a pointer and a size, > > and in this example instead of size you pass constants 1 and 2, which > > essentially means that both syscall_info_entry->entry.args[0] and > > syscall_info_exit->exit.rval are not going to be assigned > > and would just contain some garbage from the stack. > > > > Also, PTRACE_GET_SYSCALL_INFO operation returns the number of bytes > > available to be written by the kernel, which is always nonzero on any > > PTRACE_GET_SYSCALL_INFO-capable kernel. In other words, this example > > will always end up with perr_and_exit() call. > > > > I wonder how this test was tested before the submission. > > Oops... It seems I forget sync the code to test board so it runs with the old code... > The code is completely not tested... > I'm so sorry for my mistake. > > I will correct it and test it carefully later... It would be great to get this into 6.14. Let me know if you would like any help! - Charlie > > > > > >