* [PATCH] gfs2: move from strlcpy with unused retval to strscpy
@ 2022-08-18 21:01 Wolfram Sang
2022-08-23 9:37 ` [Cluster-devel] " Andrew Price
0 siblings, 1 reply; 5+ messages in thread
From: Wolfram Sang @ 2022-08-18 21:01 UTC (permalink / raw)
To: linux-kernel
Cc: Wolfram Sang, Bob Peterson, Andreas Gruenbacher, cluster-devel
Follow the advice of the below link and prefer 'strscpy' in this
subsystem. Conversion is 1:1 because the return value is not used.
Generated by a coccinelle script.
Link: https://lore.kernel.org/r/CAHk-=wgfRnXz0W3D37d01q3JFkr_i_uTL=V6A6G1oUZcprmknw@mail.gmail.com/
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
fs/gfs2/ops_fstype.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index 549879929c84..b57d9bf4b123 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -381,8 +381,8 @@ static int init_names(struct gfs2_sbd *sdp, int silent)
if (!table[0])
table = sdp->sd_vfs->s_id;
- strlcpy(sdp->sd_proto_name, proto, GFS2_FSNAME_LEN);
- strlcpy(sdp->sd_table_name, table, GFS2_FSNAME_LEN);
+ strscpy(sdp->sd_proto_name, proto, GFS2_FSNAME_LEN);
+ strscpy(sdp->sd_table_name, table, GFS2_FSNAME_LEN);
table = sdp->sd_table_name;
while ((table = strchr(table, '/')))
@@ -1439,13 +1439,13 @@ static int gfs2_parse_param(struct fs_context *fc, struct fs_parameter *param)
switch (o) {
case Opt_lockproto:
- strlcpy(args->ar_lockproto, param->string, GFS2_LOCKNAME_LEN);
+ strscpy(args->ar_lockproto, param->string, GFS2_LOCKNAME_LEN);
break;
case Opt_locktable:
- strlcpy(args->ar_locktable, param->string, GFS2_LOCKNAME_LEN);
+ strscpy(args->ar_locktable, param->string, GFS2_LOCKNAME_LEN);
break;
case Opt_hostdata:
- strlcpy(args->ar_hostdata, param->string, GFS2_LOCKNAME_LEN);
+ strscpy(args->ar_hostdata, param->string, GFS2_LOCKNAME_LEN);
break;
case Opt_spectator:
args->ar_spectator = 1;
--
2.35.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Cluster-devel] [PATCH] gfs2: move from strlcpy with unused retval to strscpy
2022-08-18 21:01 [PATCH] gfs2: move from strlcpy with unused retval to strscpy Wolfram Sang
@ 2022-08-23 9:37 ` Andrew Price
2022-08-24 20:08 ` Wolfram Sang
0 siblings, 1 reply; 5+ messages in thread
From: Andrew Price @ 2022-08-23 9:37 UTC (permalink / raw)
To: Wolfram Sang
Cc: cluster-devel, linux-kernel, Andreas Gruenbacher, Bob Peterson
On 18/08/2022 22:01, Wolfram Sang wrote:
> Follow the advice of the below link and prefer 'strscpy' in this
> subsystem. Conversion is 1:1 because the return value is not used.
> Generated by a coccinelle script.
>
> Link: https://lore.kernel.org/r/CAHk-=wgfRnXz0W3D37d01q3JFkr_i_uTL=V6A6G1oUZcprmknw@mail.gmail.com/
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
> ---
> fs/gfs2/ops_fstype.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
> index 549879929c84..b57d9bf4b123 100644
> --- a/fs/gfs2/ops_fstype.c
> +++ b/fs/gfs2/ops_fstype.c
> @@ -381,8 +381,8 @@ static int init_names(struct gfs2_sbd *sdp, int silent)
> if (!table[0])
> table = sdp->sd_vfs->s_id;
>
> - strlcpy(sdp->sd_proto_name, proto, GFS2_FSNAME_LEN);
> - strlcpy(sdp->sd_table_name, table, GFS2_FSNAME_LEN);
> + strscpy(sdp->sd_proto_name, proto, GFS2_FSNAME_LEN);
> + strscpy(sdp->sd_table_name, table, GFS2_FSNAME_LEN);
Perhaps the size should be changed to GFS2_LOCKNAME_LEN to match the
size of the destination, too.
With that addition, this patch fixes this syzkaller report:
https://listman.redhat.com/archives/cluster-devel/2022-August/022755.html
Andy
>
> table = sdp->sd_table_name;
> while ((table = strchr(table, '/')))
> @@ -1439,13 +1439,13 @@ static int gfs2_parse_param(struct fs_context *fc, struct fs_parameter *param)
>
> switch (o) {
> case Opt_lockproto:
> - strlcpy(args->ar_lockproto, param->string, GFS2_LOCKNAME_LEN);
> + strscpy(args->ar_lockproto, param->string, GFS2_LOCKNAME_LEN);
> break;
> case Opt_locktable:
> - strlcpy(args->ar_locktable, param->string, GFS2_LOCKNAME_LEN);
> + strscpy(args->ar_locktable, param->string, GFS2_LOCKNAME_LEN);
> break;
> case Opt_hostdata:
> - strlcpy(args->ar_hostdata, param->string, GFS2_LOCKNAME_LEN);
> + strscpy(args->ar_hostdata, param->string, GFS2_LOCKNAME_LEN);
> break;
> case Opt_spectator:
> args->ar_spectator = 1;
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Cluster-devel] [PATCH] gfs2: move from strlcpy with unused retval to strscpy
2022-08-23 9:37 ` [Cluster-devel] " Andrew Price
@ 2022-08-24 20:08 ` Wolfram Sang
2022-08-25 9:32 ` Andrew Price
0 siblings, 1 reply; 5+ messages in thread
From: Wolfram Sang @ 2022-08-24 20:08 UTC (permalink / raw)
To: Andrew Price
Cc: cluster-devel, linux-kernel, Andreas Gruenbacher, Bob Peterson
[-- Attachment #1: Type: text/plain, Size: 921 bytes --]
Hi Andy.
> > - strlcpy(sdp->sd_proto_name, proto, GFS2_FSNAME_LEN);
> > - strlcpy(sdp->sd_table_name, table, GFS2_FSNAME_LEN);
> > + strscpy(sdp->sd_proto_name, proto, GFS2_FSNAME_LEN);
> > + strscpy(sdp->sd_table_name, table, GFS2_FSNAME_LEN);
>
> Perhaps the size should be changed to GFS2_LOCKNAME_LEN to match the size of
> the destination, too.
>
> With that addition, this patch fixes this syzkaller report:
>
> https://listman.redhat.com/archives/cluster-devel/2022-August/022755.html
Linus wrote another summary about strlcpy vs. strscpy use[1]. So, the
size argument should be the size of the smaller buffer if the buffers
are of different size. GFS2_LOCKNAME_LEN is smaller, so that looks
suitable. Shall I resend the patch with the suggested change?
All the best,
Wolfram
[1] https://lore.kernel.org/lkml/CAHk-=wi+xbVq++uqW9YgWpHjyBHNB8a-xad+Xp23-B+eodLCEA@mail.gmail.com/
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Cluster-devel] [PATCH] gfs2: move from strlcpy with unused retval to strscpy
2022-08-24 20:08 ` Wolfram Sang
@ 2022-08-25 9:32 ` Andrew Price
2022-08-26 13:28 ` Andreas Gruenbacher
0 siblings, 1 reply; 5+ messages in thread
From: Andrew Price @ 2022-08-25 9:32 UTC (permalink / raw)
To: Wolfram Sang
Cc: cluster-devel, linux-kernel, Andreas Gruenbacher, Bob Peterson
On 24/08/2022 21:08, Wolfram Sang wrote:
> Hi Andy.
>
>>> - strlcpy(sdp->sd_proto_name, proto, GFS2_FSNAME_LEN);
>>> - strlcpy(sdp->sd_table_name, table, GFS2_FSNAME_LEN);
>>> + strscpy(sdp->sd_proto_name, proto, GFS2_FSNAME_LEN);
>>> + strscpy(sdp->sd_table_name, table, GFS2_FSNAME_LEN);
>>
>> Perhaps the size should be changed to GFS2_LOCKNAME_LEN to match the size of
>> the destination, too.
>>
>> With that addition, this patch fixes this syzkaller report:
>>
>> https://listman.redhat.com/archives/cluster-devel/2022-August/022755.html
>
> Linus wrote another summary about strlcpy vs. strscpy use[1]. So, the
> size argument should be the size of the smaller buffer if the buffers
> are of different size. GFS2_LOCKNAME_LEN is smaller, so that looks
> suitable. Shall I resend the patch with the suggested change?
Yes, please. I can't speak for the gfs2 maintainers but I think it would
be a good plan, as the combination of strscpy and the size change fixes
a bug.
Andy
>
> All the best,
>
> Wolfram
>
> [1] https://lore.kernel.org/lkml/CAHk-=wi+xbVq++uqW9YgWpHjyBHNB8a-xad+Xp23-B+eodLCEA@mail.gmail.com/
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Cluster-devel] [PATCH] gfs2: move from strlcpy with unused retval to strscpy
2022-08-25 9:32 ` Andrew Price
@ 2022-08-26 13:28 ` Andreas Gruenbacher
0 siblings, 0 replies; 5+ messages in thread
From: Andreas Gruenbacher @ 2022-08-26 13:28 UTC (permalink / raw)
To: Andrew Price; +Cc: Wolfram Sang, cluster-devel, linux-kernel, Bob Peterson
Wolfram and Andy,
On Thu, Aug 25, 2022 at 11:33 AM Andrew Price <anprice@redhat.com> wrote:
> On 24/08/2022 21:08, Wolfram Sang wrote:
> > Hi Andy.
> >
> >>> - strlcpy(sdp->sd_proto_name, proto, GFS2_FSNAME_LEN);
> >>> - strlcpy(sdp->sd_table_name, table, GFS2_FSNAME_LEN);
> >>> + strscpy(sdp->sd_proto_name, proto, GFS2_FSNAME_LEN);
> >>> + strscpy(sdp->sd_table_name, table, GFS2_FSNAME_LEN);
> >>
> >> Perhaps the size should be changed to GFS2_LOCKNAME_LEN to match the size of
> >> the destination, too.
> >>
> >> With that addition, this patch fixes this syzkaller report:
> >>
> >> https://listman.redhat.com/archives/cluster-devel/2022-August/022755.html
> >
> > Linus wrote another summary about strlcpy vs. strscpy use[1]. So, the
> > size argument should be the size of the smaller buffer if the buffers
> > are of different size. GFS2_LOCKNAME_LEN is smaller, so that looks
> > suitable. Shall I resend the patch with the suggested change?
>
> Yes, please. I can't speak for the gfs2 maintainers but I think it would
> be a good plan, as the combination of strscpy and the size change fixes
> a bug.
thanks, I've fixed this in for-next now:
https://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git/commit/?h=for-next&id=204c0300c4e99707e9fb6e57840aa1127060e63f
Andreas
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-08-26 13:28 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-18 21:01 [PATCH] gfs2: move from strlcpy with unused retval to strscpy Wolfram Sang
2022-08-23 9:37 ` [Cluster-devel] " Andrew Price
2022-08-24 20:08 ` Wolfram Sang
2022-08-25 9:32 ` Andrew Price
2022-08-26 13:28 ` Andreas Gruenbacher
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).