mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [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®