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 2B003E77188 for ; Thu, 26 Dec 2024 13:35:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 830D16B007B; Thu, 26 Dec 2024 08:35:05 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7E0846B0083; Thu, 26 Dec 2024 08:35:05 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6CF5D6B0085; Thu, 26 Dec 2024 08:35:05 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 4FF2F6B007B for ; Thu, 26 Dec 2024 08:35:05 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id D02081214D4 for ; Thu, 26 Dec 2024 13:35:04 +0000 (UTC) X-FDA: 82937204952.12.BBA16EE Received: from vmicros1.altlinux.org (vmicros1.altlinux.org [194.107.17.57]) by imf24.hostedemail.com (Postfix) with ESMTP id 14D7918000C for ; Thu, 26 Dec 2024 13:34:56 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=none; spf=pass (imf24.hostedemail.com: domain of ldv@altlinux.org designates 194.107.17.57 as permitted sender) smtp.mailfrom=ldv@altlinux.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1735220059; 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; bh=cJKx3a6wxCxEbf3SZClRAEisG3vkfK2UvWpLsw+3g9c=; b=FkP9LuwpU4Hn4OngHm86Cph8nDjcAVSN8LfXI2BHRLNQzNzZJeP6Gv6tyV7QI14YNiLuDq WhMbLaqF4f6g/cR9a7jhaMIfp5A3+J4CId3cIto5pDTt0nNDGnmM/FpBHrTNLlSQrprRzj l1jEnPWfhigfa4X2jzFtqsAJWQuNbL0= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=none; spf=pass (imf24.hostedemail.com: domain of ldv@altlinux.org designates 194.107.17.57 as permitted sender) smtp.mailfrom=ldv@altlinux.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1735220059; a=rsa-sha256; cv=none; b=gTOgaJvhVTDi3Il92ZmzgL+yCi79DxTxIYMINgITFdEn5h2PuT/U77hmg5yMfBpyLaxbZb e0atcLRsUDPEQLBijIbauObWx3m4Z+LnWz92Sw7y5DvshJw0SyIEO8UeUW2sZYJWPF7MbS 3Eh76Me2ydNhicoplZ677hyQjjKfMrE= Received: from mua.local.altlinux.org (mua.local.altlinux.org [192.168.1.14]) by vmicros1.altlinux.org (Postfix) with ESMTP id 8FAC872C8CC; Thu, 26 Dec 2024 16:35:00 +0300 (MSK) Received: by mua.local.altlinux.org (Postfix, from userid 508) id 489C37CCB3A; Thu, 26 Dec 2024 15:35:00 +0200 (IST) Date: Thu, 26 Dec 2024 15:35:00 +0200 From: "Dmitry V. Levin" To: Celeste Liu Cc: Oleg Nesterov , Paul Walmsley , Palmer Dabbelt , Eric Biederman , Kees Cook , Shuah Khan , Albert Ou , Alexandre Ghiti , Andrea Bolognani , =?utf-8?B?QmrDtnJuIFTDtnBlbA==?= , Thomas Gleixner , Ron Economos , Charlie Jenkins , 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, =?utf-8?B?QmrDtnJuIFTDtnBlbA==?= Subject: Re: [PATCH v4 2/2] riscv: selftests: Add a ptrace test to verify syscall parameter modification Message-ID: <20241226133459.GA30481@strace.io> References: <20241226-riscv-new-regset-v4-0-4496a29d0436@coelacanthus.name> <20241226-riscv-new-regset-v4-2-4496a29d0436@coelacanthus.name> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20241226-riscv-new-regset-v4-2-4496a29d0436@coelacanthus.name> X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 14D7918000C X-Rspam-User: X-Stat-Signature: z7hzqx1qq996895aqcbhp5dmumxtbdrz X-HE-Tag: 1735220096-144169 X-HE-Meta: U2FsdGVkX18O4Hn5QOOkeHCOp2bm6WA15nupB2ci2ggcMJ72Clm/e5638FDLa4fv1rPjNnW0sKaI9AlKOWppdjuBmayQJoQWSBQ82pLP4UepA2LiU2scfUZb1cj2h8GC8XaEc9uEW+MdxrM+hyY9ennnmlj3JsA2ZAVbdnPorIMNHCsC0rvM7m3kVbqSo+Iqn9lVjaZ7rPQPgTf8MRs8kxlHC1Yg4IBdJL5ma5XYOkE9+v0pLtvaNnEy83MX7TE1/H2xKkD5aKZM4qhsdrj0xPIiTlZNtZ3L9YA3HWL7ctSCjUSvuh1Kx7psPL8gdZa52ZsWBS4RY3dbN5nfhV598ITsSCnA7RLc9NgzWA8F2vZa5E+sByKhXEHieoKinymR+niyZJ+/W6q2fohfkZk7jqyil/7il+HKc4tjk2xf4rBzlbYIF6nVQwXVC4uFUJvvCVeuaNEQRfGg2eiXh2ZHHJq+3utmmUm/BXTfhNje2YMz28ndnwJ5jHyhWoYO4oJGyN1rWd3IIoKYcWDcWhUULMSmg5DFIdubkI6rLCV/58lMaNdz/9c71Jl63irnVrH5moaxSvg5vpM/1lJDQ9OnBLlNKavRN/i1UJ6UWTOmayccnt4HF4beuLqZu3a/sfYR8bYfHcOml1q3yIjhkbMKoDioo3h7vZOctr4KbbIS7Ny8AtiaDV5lB8YPupiJr+nwVpKTfIFBJ55mpcHWEnIUqV9pjAby70qnnlTt6OeX02p2rSEdo/0Z1HVMnhX6puWUyzuhl25heV/I3ygJVCO1JFZ6G7E9foTrr9T1c/DR3Vp+rz7tCsj3cX+s4meoSxSsk1Tc6i2ZNleBinSN2uPHun3WSBaOCWDubi8l/Tl+btsyew9Z2Ylj5uZMZpKjH9QUO1jD5Q7j6kVNkyNzbnuhSWkUL2YLohy1a2U7cZAnCxAbGFE4dMMU8x/PKrHdKtv2vHXokcD2ZyFKNsSvZ+7 MIPz0kfB XoWMrv2ohEl1p+2yspFIlrj+tEYRR6Djc6Kjh8KMoL6UOBlPI5aEXJPJ9Sg5k+y2PtQmwZhP1NEsW4qoHGCdyPxqByyPH37OIVRt65dwQ/99FVQBWUZWeEqDS5Ts9GPxs1ZyqYrE7JMGGd7L0zhhRVr/9IJkH8hsPpH2UIjQv/fO/IUGPqwwSe6ksNbxoVDj/32dhthGvQ4m5pQ9oGO6SW7JNquuCnHjR4Kv6yh9/RFWeauy0Rhwz4ypftofYI/ll8AZQ9M/O66AEr2tXP3PtOgEtBM8a6RT3sW18cakZ3I/7nrnHc1FPRfqoMwXiP9gK3HhE/nDaxVwLMj7W6wvuin5H4CGhhXKAXlk/YMGBnIrH82rfaPyCUGbRfxtLrSB/109i/Bvkf5WhL6qICbUDr/QeAQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, 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 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. -- ldv