* [PATCH v2] f2fs: replace deprecated strcpy with strscpy
@ 2024-11-09 1:38 Daniel Yang
2024-11-18 1:23 ` Chao Yu
0 siblings, 1 reply; 3+ messages in thread
From: Daniel Yang @ 2024-11-09 1:38 UTC (permalink / raw)
To: Jaegeuk Kim, Chao Yu, open list:F2FS FILE SYSTEM, open list; +Cc: Daniel Yang
strcpy is deprecated. Kernel docs recommend replacing strcpy with
strscpy. The function strcpy() return value isn't used so there
shouldn't be an issue replacing with the safer alternative strscpy.
Signed-off-by: Daniel Yang <danielyangkang@gmail.com>
---
V1 -> V2: handle strscpy errors, changed prefix to f2fs
fs/f2fs/super.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 87ab5696b..4721a8a8f 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -5,6 +5,7 @@
* Copyright (c) 2012 Samsung Electronics Co., Ltd.
* http://www.samsung.com/
*/
#include <linux/module.h>
#include <linux/init.h>
#include <linux/fs.h>
@@ -1158,7 +1159,10 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
break;
}
- strcpy(ext[ext_cnt], name);
+ if (strscpy(ext[ext_cnt], name) == -E2BIG) {
+ kfree(name);
+ return -EINVAL;
+ }
F2FS_OPTION(sbi).compress_ext_cnt++;
kfree(name);
break;
@@ -1187,7 +1191,10 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
break;
}
- strcpy(noext[noext_cnt], name);
+ if (strscpy(noext[noext_cnt], name) == -E2BIG) {
+ kfree(name);
+ return -EINVAL;
+ }
F2FS_OPTION(sbi).nocompress_ext_cnt++;
kfree(name);
break;
--
2.39.5
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH v2] f2fs: replace deprecated strcpy with strscpy
2024-11-09 1:38 [PATCH v2] f2fs: replace deprecated strcpy with strscpy Daniel Yang
@ 2024-11-18 1:23 ` Chao Yu
2024-11-18 7:03 ` Daniel Yang
0 siblings, 1 reply; 3+ messages in thread
From: Chao Yu @ 2024-11-18 1:23 UTC (permalink / raw)
To: Daniel Yang, Jaegeuk Kim, open list:F2FS FILE SYSTEM, open list; +Cc: Chao Yu
On 2024/11/9 9:38, Daniel Yang wrote:
> strcpy is deprecated. Kernel docs recommend replacing strcpy with
> strscpy. The function strcpy() return value isn't used so there
> shouldn't be an issue replacing with the safer alternative strscpy.
>
> Signed-off-by: Daniel Yang <danielyangkang@gmail.com>
> ---
> V1 -> V2: handle strscpy errors, changed prefix to f2fs
>
> fs/f2fs/super.c | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
> index 87ab5696b..4721a8a8f 100644
> --- a/fs/f2fs/super.c
> +++ b/fs/f2fs/super.c
> @@ -5,6 +5,7 @@
> * Copyright (c) 2012 Samsung Electronics Co., Ltd.
> * http://www.samsung.com/
> */
> #include <linux/module.h>
> #include <linux/init.h>
> #include <linux/fs.h>
> @@ -1158,7 +1159,10 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
> break;
> }
>
> - strcpy(ext[ext_cnt], name);
> + if (strscpy(ext[ext_cnt], name) == -E2BIG) {
> + kfree(name);
> + return -EINVAL;
How about?
ret = strscpy(ext[ext_cnt], name);
if (ret < 0) {
kfree(name);
return ret;
}
> + }
> F2FS_OPTION(sbi).compress_ext_cnt++;
> kfree(name);
> break;
> @@ -1187,7 +1191,10 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
> break;
> }
>
> - strcpy(noext[noext_cnt], name);
> + if (strscpy(noext[noext_cnt], name) == -E2BIG) {
> + kfree(name);
> + return -EINVAL;
> + }
Ditto
Thanks,
> F2FS_OPTION(sbi).nocompress_ext_cnt++;
> kfree(name);
> break;
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH v2] f2fs: replace deprecated strcpy with strscpy
2024-11-18 1:23 ` Chao Yu
@ 2024-11-18 7:03 ` Daniel Yang
0 siblings, 0 replies; 3+ messages in thread
From: Daniel Yang @ 2024-11-18 7:03 UTC (permalink / raw)
To: Chao Yu; +Cc: Jaegeuk Kim, open list:F2FS FILE SYSTEM, open list
On Sun, Nov 17, 2024 at 5:24 PM Chao Yu <chao@kernel.org> wrote:
>
> On 2024/11/9 9:38, Daniel Yang wrote:
> > strcpy is deprecated. Kernel docs recommend replacing strcpy with
> > strscpy. The function strcpy() return value isn't used so there
> > shouldn't be an issue replacing with the safer alternative strscpy.
> >
> > Signed-off-by: Daniel Yang <danielyangkang@gmail.com>
> > ---
> > V1 -> V2: handle strscpy errors, changed prefix to f2fs
> >
> > fs/f2fs/super.c | 11 +++++++++--
> > 1 file changed, 9 insertions(+), 2 deletions(-)
> >
> > diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
> > index 87ab5696b..4721a8a8f 100644
> > --- a/fs/f2fs/super.c
> > +++ b/fs/f2fs/super.c
> > @@ -5,6 +5,7 @@
> > * Copyright (c) 2012 Samsung Electronics Co., Ltd.
> > * http://www.samsung.com/
> > */
> > #include <linux/module.h>
> > #include <linux/init.h>
> > #include <linux/fs.h>
> > @@ -1158,7 +1159,10 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
> > break;
> > }
> >
> > - strcpy(ext[ext_cnt], name);
> > + if (strscpy(ext[ext_cnt], name) == -E2BIG) {
> > + kfree(name);
> > + return -EINVAL;
>
> How about?
>
> ret = strscpy(ext[ext_cnt], name);
> if (ret < 0) {
> kfree(name);
> return ret;
> }
>
> > + }
> > F2FS_OPTION(sbi).compress_ext_cnt++;
> > kfree(name);
> > break;
> > @@ -1187,7 +1191,10 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
> > break;
> > }
> >
> > - strcpy(noext[noext_cnt], name);
> > + if (strscpy(noext[noext_cnt], name) == -E2BIG) {
> > + kfree(name);
> > + return -EINVAL;
> > + }
>
> Ditto
>
> Thanks,
>
> > F2FS_OPTION(sbi).nocompress_ext_cnt++;
> > kfree(name);
> > break;
>
Thanks for the feedback. That does look much cleaner. I've applied the
changes and sent v3.
- Daniel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-11-18 7:03 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-09 1:38 [PATCH v2] f2fs: replace deprecated strcpy with strscpy Daniel Yang
2024-11-18 1:23 ` Chao Yu
2024-11-18 7:03 ` Daniel Yang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®