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 C6359C5B548 for ; Wed, 28 Aug 2024 14:11:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 58EF86B0083; Wed, 28 Aug 2024 10:11:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 518476B0085; Wed, 28 Aug 2024 10:11:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 390A06B0088; Wed, 28 Aug 2024 10:11:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 179296B0083 for ; Wed, 28 Aug 2024 10:11:01 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 6B300C1FC1 for ; Wed, 28 Aug 2024 14:11:00 +0000 (UTC) X-FDA: 82501840680.24.A29483A Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf02.hostedemail.com (Postfix) with ESMTP id B3A1C80011 for ; Wed, 28 Aug 2024 14:10:57 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="NrGd79/b"; spf=pass (imf02.hostedemail.com: domain of alx@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=alx@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724854237; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=bCyVrhatduFqGLB+z0NotZ8Ih+iucRSgn6ClCAC418I=; b=UoQcmvAlvbbhR+PnvC9uzhOS12hdglshG6ePg8ga6IGCOrtFyAgK6S4Y/mKLb9uv/8khgU PyhgUbkvPojMo7nd5pbbhHo9X5RYmn5NNCQMiN9gjT4EYQdz6SR9J87kkA4c1ZDZFy5Jpm eI7LuRRyB90VP/DjLGvqc8oivSO53fI= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="NrGd79/b"; spf=pass (imf02.hostedemail.com: domain of alx@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=alx@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724854237; a=rsa-sha256; cv=none; b=nnyN4MxA4t+BWHUKi+y6rb6lg34pLqcWUsS8BNl16bacIrFP+Qr3tzoR1ytPnQLf1Lseah LbWx+g8a4xCY+A7hyUa1aecyleDcFNbtllwH3OvbBWXbpg/awI64X/3aIQiL6F7+TeJuLr RzwHEpPJ2xrWxS1SlcwQTl9rn5Ls7ns= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 96104A401FE; Wed, 28 Aug 2024 14:10:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1587FC58190; Wed, 28 Aug 2024 14:10:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1724854256; bh=qp4XkaS0PrbdLwrhGw+MAEDZjVMGB9Unfk/C47vHb70=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=NrGd79/bkxy5uNQSg/aQYVCZzUtcQChkqi1vHEE8JgYEoneD4TVnVrA1U7uCyOu2P pc4jhnotRJpVsL81E5tXJPcCEgMj9RXQkul0ZZ9KDmng9yDoTCIFM3N1mg/mFvBl+q pPA9Aqo/x1Hi0n02i143QiN7a7ZonIkfp0w1wH1rqSzGhfEhNlOQwqP+9Jsk8htbdA On0mqHZtaVndCmx7CgTwOUvNp7/5tqCwJhPtO+fjMwkA8elE4/u2nkJXf6keavdJY9 zZBHjrCKs8/25LXBlgtf6MsU7IvAviSPZoTamroPsID1x8qWzjRcU88z2D0pRjvMbx 7MGTLq6mfNUvA== Date: Wed, 28 Aug 2024 16:10:49 +0200 From: Alejandro Colomar To: Yafang Shao Cc: akpm@linux-foundation.org, torvalds@linux-foundation.org, justinstitt@google.com, ebiederm@xmission.com, alexei.starovoitov@gmail.com, rostedt@goodmis.org, catalin.marinas@arm.com, penguin-kernel@i-love.sakura.ne.jp, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, audit@vger.kernel.org, linux-security-module@vger.kernel.org, selinux@vger.kernel.org, bpf@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Alexander Viro , Christian Brauner , Jan Kara , Kees Cook , Matus Jokay , "Serge E. Hallyn" Subject: Re: [PATCH v8 1/8] Get rid of __get_task_comm() Message-ID: References: <20240828030321.20688-1-laoar.shao@gmail.com> <20240828030321.20688-2-laoar.shao@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="egnngjetwmt4ba2t" Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Stat-Signature: 3qt3whrj4h4ko4wqsa59wtoobz6r4qsk X-Rspamd-Queue-Id: B3A1C80011 X-Rspamd-Server: rspam11 X-HE-Tag: 1724854257-93628 X-HE-Meta: U2FsdGVkX1+qude+pd2OAtedGSHNXNZZXTmAPZse8h6M3xx3Xzj3SLXgdm7kGnRl8WRmslSEW8DHy/CHrnBKeNvwEg6pBpjKCYquC7auadZvTr+PO2O1nq7Ms+qE0qtPW+wHmsj7WbGFa2temmK/YGaIadjte8uhdJNhkSLqLUcXupHkdzdwjSFS2k7bngN+LCLyaEIIEcsxuRas5GfjY1rn/6YSlWikTSC/JFtG4kizCVGatINBWOjUCI45JnBX09eAu2BgjfcPHyH+dOuqyM7oWS8kT+02xJYtMdU5W9DgSizriuVC6K/C5nRS4SPS+KebRKz0kMcTr4Gyig2B/vERafRaQCE+7U9WlwGiUcspc5ccdVrkVnI5jox55+Xfe2pmCdo0pRwOzHcFC0mR7C5VQm5NcWu1NkGrBHRNzRCmKdDV6GCIWz6LbGKVOBNIbDiGSRZES7qQNj7AouReM+D02dzjTvGDjXBIHp4aFILrVlTRyzPuxGE1aP6syaZzUT1JbZwa34QPqcEOf18YTLxNwNa/gJUemejEo6sqCaLTJB6z0XK5hk7tdyh9cAKd8Zk1XJfQyyQmmorYGLBj6mwTAyRBQUfwFCUiZv/VJJRekEnOjOSgyqefwZbQ6CglO1jzVidy1CAc63EuJd195ZC/IheQikTPJWNmGcLKiCgYhwDpaYzFvoCbQ9wai2fdi4weyE0P1mRXEzM2lGyWX+WC1g55fR2YcEsgpEbqG5d6wZG3BxoUo3ORmawfkxNPH7dv+YvnZGGokovvzXx7QhvmVHXS48Vu8lR3pAYdv7UiNiKBV50fJYLXb7ApWaer44I4VeEEYViRpgR5GJbHxRfs4RxkwgugmAOhc2oDYzTnYUhc+h6300fQgCMjPA1zCsnN8aGO97UPhGjq51euh+hFftM+FnpYl+sxJ+/E9ec7Kk/UOPM2eMqlhlVKSmGq4ctSSoK+6xecF0HK6DS DOb2FVQK 1QVbtukWcPBoWSnkmqKFiCIoESmwKpsZvYqma3b3NZ8rvOWTayPm8E5o/pu4+6ssDJk3e0X5MDV9qJMyz3seL0kUKnkcFIUD/HTgB5X8FscWSE+xRZZqmgDhTnOHG9feiGWK2YGqmiieCi3SN9JVGrMXFb7zErA6Qv/6Twt5tDkAw5xSVOeKB6NzbdRK3ti08SSy9WS9+kF9IW5RdWDaiRKZc8jLIyTi/LNu+LQgYYn8dvrDV4IKa2N5NcZdDirFUuJbakH2rX20trhBjWulvptGJm0qjsDzH7W2ZWsyNg6E574bNAafkVwFsXD/shX/mZVHF7fv9eZDCcNdTQFSRjGz4mI7S+0sWJLwWlfMnADjLZhtiMSpHA8SwnjaGI3jweGB4fxX8IZN35OJAMbNZb/k3zIH/IIQyKTBu6hn8QeXzkWXmOQtJ9SljN+QdO57zMA5nGRuYd7Ap8TQrtjB6udzoIg+Bt09fjlYwjxN8ce/Csb225NN79zlwZkXA/8qeKJ4eR56NrUdvWK/MwUE04qhH1yl4heLs6KLMYpvGJ/cjhFitA7JeC+N5otFBRnH21E0yvHhsgTzq3gcN45zJkuJwMjvqXyvGlX8XNJHyaNk7CvA= 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: --egnngjetwmt4ba2t Content-Type: text/plain; protected-headers=v1; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable From: Alejandro Colomar To: Yafang Shao Cc: akpm@linux-foundation.org, torvalds@linux-foundation.org, justinstitt@google.com, ebiederm@xmission.com, alexei.starovoitov@gmail.com, rostedt@goodmis.org, catalin.marinas@arm.com, penguin-kernel@i-love.sakura.ne.jp, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, audit@vger.kernel.org, linux-security-module@vger.kernel.org, selinux@vger.kernel.org, bpf@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Alexander Viro , Christian Brauner , Jan Kara , Kees Cook , Matus Jokay , "Serge E. Hallyn" Subject: Re: [PATCH v8 1/8] Get rid of __get_task_comm() References: <20240828030321.20688-1-laoar.shao@gmail.com> <20240828030321.20688-2-laoar.shao@gmail.com> MIME-Version: 1.0 In-Reply-To: Hi Yafang, On Wed, Aug 28, 2024 at 09:40:35PM GMT, Yafang Shao wrote: > > Ahh, the actual generic definition is in . > > You could do > > > > diff --git i/include/linux/string.h w/include/linux/string.h > > index 9edace076ddb..060504719904 100644 > > --- i/include/linux/string.h > > +++ w/include/linux/string.h > > @@ -76,11 +76,11 @@ ssize_t sized_strscpy(char *, const char *,= size_t); > > * known size. > > */ > > #define __strscpy0(dst, src, ...) \ > > - sized_strscpy(dst, src, sizeof(dst) + __must_be_array(d= st)) > > + sized_strscpy(dst, src, ARRAY_SIZE(dst)) > > #define __strscpy1(dst, src, size) sized_strscpy(dst, src,= size) > > > > #define __strscpy_pad0(dst, src, ...) \ > > - sized_strscpy_pad(dst, src, sizeof(dst) + __must_be_arr= ay(dst)) > > + sized_strscpy_pad(dst, src, ARRAY_SIZE(dst)) > > #define __strscpy_pad1(dst, src, size) sized_strscpy_pad(dst, = src, size) > > > > /** >=20 > Thank you for your suggestion. How does the following commit log look > to you? Does it meet your expectations? >=20 > string: Use ARRAY_SIZE() in strscpy() >=20 > We can use ARRAY_SIZE() instead to clarify that they are regular char= acters. I would write the following: For symmetry with wide-character string functions, ARRAY_SIZE() is more appropriate than sizeof(). For example, one would call wcs*cpy(dst, src, ARRAY_SIZE(dst)). The call wcs*cpy(dst, src, sizeof(dst)) would be bogus, since the argument is the number of wide characters, not the number of bytes. When translating that to normal characters, one wants conceptually the same operation, but on (normal) characters. That is, one wants strscpy(dst, src, ARRAY_SIZE(dst)). While strscpy() with sizeof() works just fine because sizeof(char)=3D=3D1 by definition, it is conceptually wrong to use it. By using ARRAY_SIZE(), we get the __must_be_array() check for free. >=20 > Co-developed-by: Alejandro Colomar > Signed-off-by: Alejandro Colomar > Signed-off-by: Yafang Shao >=20 > diff --git a/arch/um/include/shared/user.h b/arch/um/include/shared/user.h > index bbab79c0c074..07216996e3a9 100644 > --- a/arch/um/include/shared/user.h > +++ b/arch/um/include/shared/user.h > @@ -14,7 +14,7 @@ > * copying too much infrastructure for my taste, so userspace files > * get less checking than kernel files. > */ > -#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) > +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]) + __must_be_array(x)) >=20 > /* This is to get size_t and NULL */ > #ifndef __UM_HOST__ > @@ -60,7 +60,7 @@ static inline void print_hex_dump(const char *level, > const char *prefix_str, > extern int in_aton(char *str); > extern size_t strlcat(char *, const char *, size_t); > extern size_t sized_strscpy(char *, const char *, size_t); > -#define strscpy(dst, src) sized_strscpy(dst, src, sizeof(dst)) > +#define strscpy(dst, src) sized_strscpy(dst, src, ARRAY_SIZE(dst)) >=20 > /* Copied from linux/compiler-gcc.h since we can't include it directly */ > #define barrier() __asm__ __volatile__("": : :"memory") > diff --git a/include/linux/string.h b/include/linux/string.h > index 9edace076ddb..060504719904 100644 > --- a/include/linux/string.h > +++ b/include/linux/string.h >=20 > @@ -76,11 +76,11 @@ ssize_t sized_strscpy(char *, const char *, size_t); > * known size. > */ > #define __strscpy0(dst, src, ...) \ > - sized_strscpy(dst, src, sizeof(dst) + __must_be_array(dst)) > + sized_strscpy(dst, src, ARRAY_SIZE(dst)) > #define __strscpy1(dst, src, size) sized_strscpy(dst, src, size) >=20 > #define __strscpy_pad0(dst, src, ...) \ > - sized_strscpy_pad(dst, src, sizeof(dst) + __must_be_array(dst)) > + sized_strscpy_pad(dst, src, ARRAY_SIZE(dst)) > #define __strscpy_pad1(dst, src, size) sized_strscpy_pad(dst, src, size) The diff looks good to me. Thanks! Cheers, Alex >=20 > /** >=20 > -- > Regards >=20 > Yafang --=20 --egnngjetwmt4ba2t Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEE6jqH8KTroDDkXfJAnowa+77/2zIFAmbPL+QACgkQnowa+77/ 2zJobg//W3RHrDHVBPuZSKc3m1rr+m7+7TxlOxTaXg8qwoJHeHq4f/sbSV5l1HR4 UF2gEJicrF4OknzCcegkXqdjxs1MUkzlaMxIQmj0yPgQmZ1Upg9aoGlVJNyjynvD 09twa1O3azCA8YvuZc+vn0YoqbGkM54+OPWJaBsSERqgcVF57/vXgS702rKBqwhw 3CrAWa/WTX5z10Q6yX+kwV8gWrtOBsMyAQRk53Yr3ZRR8DhCyK1ImS8BSHROV8+T Dz5g8o2WzPkvKZiLq/Slxa9UpRvw5j5RBh3GBGxhZcubv8arya/FMwXotUa2L3Rr uvfxbQw6lCR15FlHrI8984b99T7YkIr/pxYmrQABScUz7uMqJAhVutei6YJJgkUs jpEsNQeOiDgJoQUU7xcVuP1ME6sgdU7/vxYfcjiybYX0rvaVjKTRWRAQt6NmmvqX L6sZ94Tmba4wN92Akga5S3wnEadpbFHZtVGOVbc6tHz9ee0uVksD+DWSQVz7F8pw vMu73OMlE/cp9AFZhtVDuUCqneXgvgEGs86akKQuVdx2fSeZG3CVkTH5L8vSlTGi AlUtf5jlr8oHAP3g6Jl5KTxgGQXaXybO0RlbyVgM1ZrT+vrHLIB0mwBTJ3cIBKLS jAh4WPx1tmvxpQw9/G3igu98xN7ttGBv7Lc+WxmGK/aQfJtl6T4= =TaLj -----END PGP SIGNATURE----- --egnngjetwmt4ba2t--