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 E10C4D20682 for ; Tue, 15 Oct 2024 23:17:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E38406B007B; Tue, 15 Oct 2024 19:17:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DE86B6B0082; Tue, 15 Oct 2024 19:17:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CD7066B0083; Tue, 15 Oct 2024 19:17:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id AE9D36B007B for ; Tue, 15 Oct 2024 19:17:07 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 4A866A1941 for ; Tue, 15 Oct 2024 23:16:50 +0000 (UTC) X-FDA: 82677398958.13.89BBF7C Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) by imf22.hostedemail.com (Postfix) with ESMTP id 246BCC0002 for ; Tue, 15 Oct 2024 23:16:55 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=GmrZ++Il; spf=pass (imf22.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.221.46 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729034082; 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=eD4CywG5G4jHbhFsfPy0Spq5T4P0b6fgkLacmkiZ4vE=; b=2QGgKZGZhndvsTpn1nigM3pgCo5J8K9zrFmeSU7zCB5rR2egpwaOugwc5yBF0089qou9Vt NGGOz+LiSE45Elpp7DBkpe5hyZgMpiqAZliGnviaiQYN/qMejLdpP4OLJV71Vn7VSAm6kM G2SV1b41Rx1hJWwCbYRBYPOsPNFjBrY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729034082; a=rsa-sha256; cv=none; b=xJvbhZwbHkL0ad8MAn14OPNFRiq9ts74jV9ECpCMx32U5NsTsjUqLTk2c6pm8IVvPz/dMJ jbd3mlV6XGHmxmgqGU6MixAOd8UqBB3zWsHhhJ8R/FlAxOjmzmJjr7XCw3buO1Eo4DSZMo zMDjQru71AJ7Qlt/gjb/gsWvey2gANc= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=GmrZ++Il; spf=pass (imf22.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.221.46 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-37d447de11dso4252118f8f.1 for ; Tue, 15 Oct 2024 16:17:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729034224; x=1729639024; 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=eD4CywG5G4jHbhFsfPy0Spq5T4P0b6fgkLacmkiZ4vE=; b=GmrZ++Il1rtRMaDQrzts87XF/YMp0inSHtYwXC4n8fDlAhErSoH0c2cL4CXQOuto/d LAatfOMHrWU6t7Rk+vuaswBhIBUyy5f1QkrhYMIdyz5yEebyvshVIaIPell08+OU1zck ks9ftISc63BTu/BvhXPSEkPSVTIhCsjxNzD4w5GnpQrSLvDjPluLkGmolMgJsvFLAC75 4mdSHzLOFOtq8pRmWCbWnTG2+uwQ2ovjKzRTk4IZaIQuzkEh8+7zWtsHwOuY7Fvmd7Or o/EWURchxps99RWdDOeM4SVAXzDYevhAnJqHxAkWkW2jBvWUh26/gGkCV+ZymT1WKtrn Rwxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729034224; x=1729639024; 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=eD4CywG5G4jHbhFsfPy0Spq5T4P0b6fgkLacmkiZ4vE=; b=AOFDWiraXN5sdCHewJunLR70ZTvseq9S+sqK0bO6WrXYbw3ciqYMUbnGRA7JCh8kB2 wPlBd/O17JcKUiMSQ5uLWzUFLLEgvk4VaKogfQEWtz7qxIq0At0nkWCgI3jI5/2l13oj I0gcXicJGfu4vym7fUkYGTkNbkd67IJ1wMgNC8kHPaN1DsjlGfNLm6U3fiwh7cAdAg3o ssTbWqqCvqrBUwJO0ZCK00jvvM/3/v1yxD6Bm5qPZxIgmMxX6R02UVZ2WP/AmYtWhGxS fPkdavMpd7/VgQh9eQc6r6kHVLKBUkJflt4d1m1Kj+6PtM+THgzXy+NAc60Ub35b3WXv kKLA== X-Forwarded-Encrypted: i=1; AJvYcCWoswYmoln/zveb+DoaECbDpaF9XUgT79MVhBJHXkrqs6Q0sgLr+XfU176F2gFYFu8K+/myaLuxqg==@kvack.org X-Gm-Message-State: AOJu0YxrI9hizyGKAMap4WjaoXEvutIZKHy3WiRhiCt51zZ5IVzgwO91 nI1tb3EoN11Ni8NrHlE/XmLoFb9TjMkr2uRlphpduGyWlhuO6CSGP+mcL0CR8D/IEXTkh1TDmcf wMyQdjbtppo+0dz2DNs8bqfqelMU= X-Google-Smtp-Source: AGHT+IFfPTgIz4rA2XwAvHVPueqtZhJGmRZFRE4ddHUTGZk/+1SCzJOPWNfvCkOwGnD81zjFhcwyV1EKACC9Xm8QGCQ= X-Received: by 2002:a5d:6647:0:b0:37d:453f:4469 with SMTP id ffacd0b85a97d-37d551d506amr10150361f8f.22.1729034223715; Tue, 15 Oct 2024 16:17:03 -0700 (PDT) MIME-Version: 1.0 References: <20241014025701.3096253-1-snovitoll@gmail.com> <20241014025701.3096253-3-snovitoll@gmail.com> <20241014161042.885cf17fca7850b5bbf2f8e5@linux-foundation.org> In-Reply-To: From: Andrey Konovalov Date: Wed, 16 Oct 2024 01:16:52 +0200 Message-ID: Subject: Re: [PATCH RESEND v3 2/3] kasan: migrate copy_user_test to kunit To: Sabyrzhan Tasbolatov Cc: Andrew Morton , 2023002089@link.tyut.edu.cn, alexs@kernel.org, corbet@lwn.net, dvyukov@google.com, elver@google.com, glider@google.com, kasan-dev@googlegroups.com, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, ryabinin.a.a@gmail.com, siyanteng@loongson.cn, vincenzo.frascino@arm.com, workflows@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 246BCC0002 X-Stat-Signature: x8bi4x1xuohrefymdszxs36wx95t9utb X-HE-Tag: 1729034215-763364 X-HE-Meta: U2FsdGVkX1+jA4Ln1ni7C1xBhpjkpvVhXavvNVc58alCExj7sqNpKj3bB0FD7f8/v2sLgYNkD+EMDN0p0l1VyMmUucbYxraA7Lh1+eAHJ+OsUwn/M7eGvcJiUimAQwDB4hMTXHGapCo36BCkFlxrwppU+aLDW+zqd3ulzLeGnKWkG/RlAW0EoOZ2kg2DNwmNvW1bsl2hzWMEM4klRJoKlaLCVcW2sAF2uYbwi+iDolU6QGhdLQ2X0KRWiZecrYQy33/hVur++2uc7c/aX84E4ca9Wm3y2+qwUMqYEgc5kzAaDz8lftZkuZsKosRU6cqcb+yias8PiGGslV5Ao/hqfU7WlzkRMhyb+2Q0ZgWtGvKCCM034T3pH6Joo6wQO9nsEeBpJ+3990mhQtJMbWreDUoGsKQmTHsL/nO+azqchv2o/GPikFsUl3GXMiY3d/ferXQFTo4MKmNUyXm8QBytvCbkjUtzDDdD4cjQtFpoqDV5QQ4f9GZOZujNf5K6KLak0UP5BXvacH0qRodgb4RweOXeC+tcLFMElv2vgZJnq7hjsse0H6MgQxIKD1XTvl3SFHwQgb5hhnDPviNujAE3Qr4QY2YQgoyDcldR1Z9tNFSQ9v24X0wLJWGTLhtEUrRKB7uwE69Q5q8H/TVBYPV18iwDmVyXyDZbygHebM0auiWjFRg2GEGW/kUXK2G+jAer5N4tfdACAooi2g2kthsl4F/jY0QxboJQ7fd1PfbWpp+8/bXhtrgMmve9/IeebUE+66CHVr8PmFYVOVdvuHz5STszP0MaVE3jux3M27s5w8OV+38MROf3vPQgzgJKwv+k0ZpSk0EPCzfsErJmZoCelVqlAjqCPaGIKsWP5fbvRxzjAwsOQlxUQ/o2YVOSeOd+2VIZKgmctSjGCbKRNqhTUvi8nDLGiQeumG110TL6rmaR0NWYalnsdOJ8HPMdqJ/90JUC/6eqZQokcg6Hm4I P+VOdvNw 5XPf6zK/UUUuOklN7iGa5DUIFkjs73Fq5OXP2UjgSDcJqEXX7mol36iTDQiovCZ3/ynKOxwk7k6HnJBgBTTMlFNVIyajFXozbbU6+yYOqlGwIdwhAwgP2UY8A6ysw1qII/X/o6TDGyGVsvv9aKFaDiz7wrG8uLKVOEE9iiHVLLrtOLs9c/3NaISyVDA7FwkiQxepW0BA3880D/hb6m7lFX4Jh3auO1tc1qzcteX/owwfpKxiZHbHeRMp1oXIdvfo2LVT9Fle9uMmMUDWjTKFd7//LQGFNpygLf48OaUfYHb/YtW6+WU6UqUYiVB5J+2eSIoaOAAQ8Fu2DCZcQ8H/rLYWg3VORvpmCilo//8qlrOu9FsYVyEmyIACk8PQAfUhRe4twSPEPAvHzHrd1YI2rohm9r4PLtcN4ETE/I03+/3uarEPey9KT/iN3YF1upjhWfhwcPpqzULE+6yc= 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 Tue, Oct 15, 2024 at 12:52=E2=80=AFPM Sabyrzhan Tasbolatov wrote: > > > Too bad. I guess we have to duplicate both kasan_check_write and > > check_object_size before both do_strncpy_from_user calls in > > strncpy_from_user. > > Shall we do it once in strncpy_from_user() as I did in v1? > Please let me know as I've tested in x86_64 and arm64 - > there is no warning during kernel build with the diff below. > > These checks are for kernel pointer *dst only and size: > kasan_check_write(dst, count); > check_object_size(dst, count, false); > > And there are 2 calls of do_strncpy_from_user, > which are implemented in x86 atm per commit 2865baf54077, > and they are relevant to __user *src address, AFAIU. > > long strncpy_from_user() > if (can_do_masked_user_access()) { > src =3D masked_user_access_begin(src); > retval =3D do_strncpy_from_user(dst, src, count, count); > user_read_access_end(); > } > > if (likely(src_addr < max_addr)) { > if (user_read_access_begin(src, max)) { > retval =3D do_strncpy_from_user(dst, src, count, max); > user_read_access_end(); > > --- > diff --git a/lib/strncpy_from_user.c b/lib/strncpy_from_user.c > index 989a12a6787..6dc234913dd 100644 > --- a/lib/strncpy_from_user.c > +++ b/lib/strncpy_from_user.c > @@ -120,6 +120,9 @@ long strncpy_from_user(char *dst, const char > __user *src, long count) > if (unlikely(count <=3D 0)) > return 0; > > + kasan_check_write(dst, count); > + check_object_size(dst, count, false); > + > if (can_do_masked_user_access()) { > long retval; > > @@ -142,8 +145,6 @@ long strncpy_from_user(char *dst, const char > __user *src, long count) > if (max > count) > max =3D count; > > - kasan_check_write(dst, count); > - check_object_size(dst, count, false); > if (user_read_access_begin(src, max)) { > retval =3D do_strncpy_from_user(dst, src, count, = max); > user_read_access_end(); Ok, let's do this. (What looked concerning to me with this approach was doing the KASAN/userscopy checks outside of the src_addr < max_addr, but I suppose that should be fine.) Thank you!