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 1FF37C02198 for ; Fri, 14 Feb 2025 14:15:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2FD926B007B; Fri, 14 Feb 2025 09:15:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2AD436B0083; Fri, 14 Feb 2025 09:15:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 14F016B0085; Fri, 14 Feb 2025 09:15:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id E1CBA6B007B for ; Fri, 14 Feb 2025 09:15:44 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 9AD85A0415 for ; Fri, 14 Feb 2025 14:15:37 +0000 (UTC) X-FDA: 83118748314.29.5A72693 Received: from mail-oi1-f177.google.com (mail-oi1-f177.google.com [209.85.167.177]) by imf06.hostedemail.com (Postfix) with ESMTP id 79A15180009 for ; Fri, 14 Feb 2025 14:15:35 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=b8sJGuGC; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf06.hostedemail.com: domain of jeffxu@chromium.org designates 209.85.167.177 as permitted sender) smtp.mailfrom=jeffxu@chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739542535; a=rsa-sha256; cv=none; b=0ncAUrTYzgrCJxNmvXP0EsAIaukDG8vX5Rmq/ZqMI5GQ90ljXoesZ30ocS81+E6c/wm0mz pdTQJO6ySkvH4spAiotW2dThj+Q1yNvAnUlnchG12wgbvhQSSk9RlQPBSb3XYHAbVFgnpz UTFlJ5JB8bSxMeq805Th1dh13zAe/Z8= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=b8sJGuGC; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf06.hostedemail.com: domain of jeffxu@chromium.org designates 209.85.167.177 as permitted sender) smtp.mailfrom=jeffxu@chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739542535; 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=jUSHq3jaDRKrxbHBpMUUMtmLRZDuG6csEtNLoVlgBlw=; b=TAWo478ppQfA8UFxuTDUDzV5XREHtKV7607A6zSqSZzGnBSeBuxQ6osAyrZbPPH7kFVSxs wuDi+p/bdELUiWVa6j+FIyuPe7YNdvZ6gPNWoax04i89uo9TmSEuhkdSvNVH75o4rzkjFX 6bjEGsxjvJay6l73e4Mx4oTQWSHJd2o= Received: by mail-oi1-f177.google.com with SMTP id 5614622812f47-3f3d2a8a88fso182532b6e.0 for ; Fri, 14 Feb 2025 06:15:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1739542534; x=1740147334; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=jUSHq3jaDRKrxbHBpMUUMtmLRZDuG6csEtNLoVlgBlw=; b=b8sJGuGC1g8vUlgBA3EnGUbqgrvc9Dr1dMbNkN7k1N1dffvj8SRO6pmkpt6DcCd2/N 6RDHMN7R0meTwi4X/dUMfp9s1bbWCtdDlEncmp1nmboz0G6Smzkwy8GSdGNkBA6Ky+tZ hEMjEUoi+WH7x7skEmLC9c1NxHoygPbGJ0TKY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739542534; x=1740147334; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jUSHq3jaDRKrxbHBpMUUMtmLRZDuG6csEtNLoVlgBlw=; b=h0ZkUSg1jV+QFiZoiiIGSwSCGIvfP7JlLbetKVpDo5pO5TXGPzvpfmlos8ZOk8QpoR ojfc/pOiymt8CF8TFoh4zBkU9zYKscdLG/BhjLV5XQRAJCHlJAEahvZeR6me3++YuYIY HtPdCX9VEWbIHp4Ewna0aa24E8HfeOtZQXT5pAfXBEuxgV8R30AmDxjdowE1YeTeuba0 rslVLrHRCtVE+miwDG0JrQQRCvI+DvIi3qW09LTAfy+1GO7Y0AtCXFjxW8J0q1DN6Ym3 OKIWDbzPecDkgPUXOWGZfT7WGWI0GPKJYehDKfBmvUw/UZsOaUHKb0NuYTsa32LeT/GF wj6Q== X-Forwarded-Encrypted: i=1; AJvYcCWu2TsOu57YO44kViC0HDCP0I9dk+v7g0lZ8C2eAYSCaTYVEJCMuhWRHR63HBAGmwLInWfnW2AeHw==@kvack.org X-Gm-Message-State: AOJu0Yylx7IhXo0SbFJTCcp2jYUYTXF7ol6hZ8+ThlRcrjmHUO75bOTi qTnKZnlLpbg1da82LYrEv0uD3TtrwcX3fMIu1ebKN0qG05WsA+oha92N2hNGZMyyddWnOuoWhMd qWEoEWDjeB7/o4fse/RZyYH+ZnWed6b3nFWzD X-Gm-Gg: ASbGncuvO1E9uzYZpg7b5eyu7HCNperDP4uhYqidhVmk+tZg7pJoKjkhGJDcJPUNItE PF0AP9qIXR/ctYaEcUAEfqBpbmw1tn8fCOqhZ0R5Nk9j6ACsvj54PSDucp9cKmcWPEBSQcOIvG4 Vg+4NXW5qdFFBWZ5IrGH80wLNlbUWB+w== X-Google-Smtp-Source: AGHT+IGWTatZC4i6Xeclni+qSZuML5VogNMExsBKztM0nMedMyzeMcfxgLKyTArA7nCZqL1C62QN50G8Y+0AaZqQ5oc= X-Received: by 2002:a05:6808:2223:b0:3f3:d712:ed1d with SMTP id 5614622812f47-3f3d712eec2mr2215561b6e.3.1739542534360; Fri, 14 Feb 2025 06:15:34 -0800 (PST) MIME-Version: 1.0 References: <20250212032155.1276806-1-jeffxu@google.com> <20250212032155.1276806-3-jeffxu@google.com> <20250212135000-861e6353-6e0a-43c3-9b28-649ae4dfc607@linutronix.de> <35C0FD0B-0483-4663-AD60-701AB8D9247A@kernel.org> <462A068C-489E-400D-9E82-F54F46E77DF3@kernel.org> In-Reply-To: <462A068C-489E-400D-9E82-F54F46E77DF3@kernel.org> From: Jeff Xu Date: Fri, 14 Feb 2025 06:15:00 -0800 X-Gm-Features: AWEUYZnCbHWd4NfDRp5Q7loL4F7IOU0imN4RIPXvJI6KVbMK6gXuf6iKqHba70I Message-ID: Subject: Re: [RFC PATCH v5 2/7] selftests: x86: test_mremap_vdso: skip if vdso is msealed To: Kees Cook Cc: =?UTF-8?Q?Thomas_Wei=C3=9Fschuh?= , akpm@linux-foundation.org, keescook@chromium.org, jannh@google.com, torvalds@linux-foundation.org, vbabka@suse.cz, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, adhemerval.zanella@linaro.org, oleg@redhat.com, avagin@gmail.com, benjamin@sipsolutions.net, linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org, linux-mm@kvack.org, jorgelo@chromium.org, sroettger@google.com, hch@lst.de, ojeda@kernel.org, adobriyan@gmail.com, johannes@sipsolutions.net, pedro.falcato@gmail.com, hca@linux.ibm.com, willy@infradead.org, anna-maria@linutronix.de, mark.rutland@arm.com, linus.walleij@linaro.org, Jason@zx2c4.com, deller@gmx.de, rdunlap@infradead.org, davem@davemloft.net, peterx@redhat.com, f.fainelli@gmail.com, gerg@kernel.org, dave.hansen@linux.intel.com, mingo@kernel.org, ardb@kernel.org, mhocko@suse.com, 42.hyeyoo@gmail.com, peterz@infradead.org, ardb@google.com, enh@google.com, rientjes@google.com, groeck@chromium.org, mpe@ellerman.id.au, aleksandr.mikhalitsyn@canonical.com, mike.rapoport@gmail.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: 79A15180009 X-Rspamd-Server: rspam12 X-Stat-Signature: 6wpc6uddcry19wuakfaykr8to3jnygap X-HE-Tag: 1739542535-760662 X-HE-Meta: U2FsdGVkX1/n4ZpqRiv+6g2ZWHcVjEf7Z4/xvuLis8JLyD8WI+4H5jqdma6U5NZJgnNBuhKNOLVtkOR+QxG4eyRSZv31LOwmg79X249/9A7FTTeitphWbRVNsjJIb5k7Kte5Tr2WXH/v3/ihZe85EIzBjWwVkiXvnDbgWe9jhptrujwVLxIMsZgs7njmqXhO066R3yZkH81IKG8qW3gBari0biflZBfNO2c3ocabJu+UjbFHjjoDou0uvJgshFfVp6Ip2edAZaL9gdQLzJzL4Lj07+hUvOS11Ti0YL1YtLD9K35tHlGMqfIKLGil8trTnEYL387g1Wc7Q+/6kvaUI2I8QGhzZxrLaDOVS9UfNPxDeNb8gNEx6Ica1QSsrd+NWiWngDMwgYrG9E6sUWuDrzWoyGASBIs72o7aTQyQB1P9qtIy5abOuCql7CgKoZy8ZhpetJpuQ8/oP3AEAbNvUigvauulTjZNq7grfnTNko6r5uWLFNmL55nWm7zc2Tsq+KNvVr/gHpcbA3ZGY1rw/2dhiuWqtjaRRvUZDRdBtrzUMdPRlpg8wXXLh3Xz1vrqgL+vprHx0uiMxGlrmSivpqok4JX2XCjkgaImNlpRxb0SBDXP8U98Y6RTcKYtr0M6qbk7kkBZVDTGBoofQJyr+tP81t4gys3YBAym+a9pMQw2riOjpCrVMSG9vhbobGC92VD37hMnoJhJqQ74IcxgeI81BOMlVjD4Ogb418FGePGXbv4CzJYMecnck0RtsXyWcOcyOa/D08/ti4w/sM+zpg/y32s/TH705KaZ/3IZWD76odWik6kBfaWqdU99TnPvNIWSorZ/0DOTeqZJrFHXTq11Ai0eLoMpPv1Gc6zLabCRmNLGjXBQo/L2LROxKXi6Irtjr/xX9i2KDxjJpSO5lbNvmraJCa7201ZMHb8A3mr1SwdpTOBoxZ5uyQuheVZrG4vfWJ7Z2KxIaF2Rfvs WZbQt5oL kvTYR/R2bX9plHcXF9YAcUj0+kpzYBKZ0g1gV/Olmwonp6dXGghTgFwmz9D6EH9Yij3L9gSWHL3zmY0DxEc4doBwPrLugjjX8PM9WVT2N96LuVgFar/0AiDmIP9nh/wwksvs8m9Nqc9UuK6MhtecfXC82nmjo5eR+rP950l8BUfl3HCWrna5DcvLH071ZxIGZSh0aX9Hdc64tYpek0T+VqBbgmkMgkFGcnweVTLTDHnspHBUyrtmTTCHyiEv+FCZhZdB0C2jpFDkpMS31/tnpVVNX9YW83V+bkRAg4wJkTnWzjftYupr44ENpYEnU7eFUOAV6MiKLxc0RLtmweT97GPv9CtV8okTyM59PzUS/Edh80Lw= 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, Feb 13, 2025 at 6:52=E2=80=AFPM Kees Cook wrote: > > > > On February 13, 2025 2:20:01 PM PST, Jeff Xu wrote: > >On Thu, Feb 13, 2025 at 11:28=E2=80=AFAM Kees Cook wro= te: > >> > >> > >> > >> On February 13, 2025 6:14:00 AM PST, Jeff Xu wro= te: > >> >On Wed, Feb 12, 2025 at 5:04=E2=80=AFAM Thomas Wei=C3=9Fschuh > >> > wrote: > >> >> > >> >> On Wed, Feb 12, 2025 at 03:21:50AM +0000, jeffxu@chromium.org wrote= : > >> >> > From: Jeff Xu > >> >> > > >> >> > Add code to detect if the vdso is memory sealed, skip the test > >> >> > if it is. > >> >> > > >> >> > Signed-off-by: Jeff Xu > >> >> > --- > >> >> > .../testing/selftests/x86/test_mremap_vdso.c | 38 +++++++++++++= ++++++ > >> >> > 1 file changed, 38 insertions(+) > >> >> > > >> >> > diff --git a/tools/testing/selftests/x86/test_mremap_vdso.c b/too= ls/testing/selftests/x86/test_mremap_vdso.c > >> >> > index d53959e03593..c68077c56b22 100644 > >> >> > --- a/tools/testing/selftests/x86/test_mremap_vdso.c > >> >> > +++ b/tools/testing/selftests/x86/test_mremap_vdso.c > >> >> > @@ -14,6 +14,7 @@ > >> >> > #include > >> >> > #include > >> >> > #include > >> >> > +#include > >> >> > > >> >> > #include > >> >> > #include > >> >> > @@ -55,13 +56,50 @@ static int try_to_remap(void *vdso_addr, unsi= gned long size) > >> >> > > >> >> > } > >> >> > > >> >> > +#define VDSO_NAME "[vdso]" > >> >> > +#define VMFLAGS "VmFlags:" > >> >> > +#define MSEAL_FLAGS "sl" > >> >> > +#define MAX_LINE_LEN 512 > >> >> > + > >> >> > +bool vdso_sealed(FILE *maps) > >> >> > +{ > >> >> > + char line[MAX_LINE_LEN]; > >> >> > + bool has_vdso =3D false; > >> >> > + > >> >> > + while (fgets(line, sizeof(line), maps)) { > >> >> > + if (strstr(line, VDSO_NAME)) > >> >> > + has_vdso =3D true; > >> >> > + > >> >> > + if (has_vdso && !strncmp(line, VMFLAGS, strlen(VMFL= AGS))) { > >> >> > + if (strstr(line, MSEAL_FLAGS)) > >> >> > + return true; > >> >> > + > >> >> > + return false; > >> >> > >> >> This only tests that any mapping after the vdso is sealed. > >> > > >> >The code above begins by searching for the "[vdso]" string, then look= s > >> >for the first line that starts with "VmFlags:", and looks for the "sl= " > >> >substring within that line. We're assuming the format of smaps won't > >> >change from release to release. > >> > >> Oh, I missed this in my reviews: nothing _resets_ has_vdso to false, s= o if any other mapping follows vdso that happens to be sealed, this will re= turn true... > >> > >It won't return the next mapping's sealing flag. > >After finding the "[vdso]", if the next line that contains VMFLAGS > >doesn't have the "sl" flag, the function returns false immediately. > > Oh! Agh, yes. You are right, this is all fine. > > >I can switch to vm_util, I will need to add a new parsing function in > >vm_util, the existing __get_smap_entry() only searches for vm's > >starting address, not name. > > Unless someone feels strongly about this, my instinct is to avoid the hig= her complexity of a cross-test thing. > OK. I will keep the existing test. If we decide to use vm_util, it would be best to refactor it separately later on. The existing vm_util can't be used as is for my needs, so some refactoring would be necessary. Thanks -Jeff > -Kees > > > -- > Kees Cook