[linux-next] kernfs: use strscpy() is more robust and safer

Message ID 202211150847452601249@zte.com.cn
State New
Headers
Series [linux-next] kernfs: use strscpy() is more robust and safer |

Commit Message

guo.ziliang@zte.com.cn Nov. 15, 2022, 12:47 a.m. UTC
  From: guo ziliang <guo.ziliang@zte.com.cn>

The implementation of strscpy() is more robust and safer.  That's now the
recommended way to copy NUL terminated strings.

Signed-off-by: guo ziliang <guo.ziliang@zte.com.cn>
---
 fs/kernfs/dir.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--
1.8.3.1
  

Comments

Greg KH Nov. 15, 2022, 6:43 a.m. UTC | #1
On Tue, Nov 15, 2022 at 08:47:45AM +0800, guo.ziliang@zte.com.cn wrote:
> From: guo ziliang <guo.ziliang@zte.com.cn>
> 
> The implementation of strscpy() is more robust and safer.

How exactly is it more robust and safer?

> That's now the recommended way to copy NUL terminated strings.

Recommended by whom for what?



> 
> Signed-off-by: guo ziliang <guo.ziliang@zte.com.cn>
> ---
>  fs/kernfs/dir.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
> index 77d7a3a..fbb8df4 100644
> --- a/fs/kernfs/dir.c
> +++ b/fs/kernfs/dir.c
> @@ -844,7 +844,7 @@ static struct kernfs_node *kernfs_walk_ns(struct kernfs_node *parent,
> 
>         spin_lock_irq(&kernfs_pr_cont_lock);
> 
> -       len = strlcpy(kernfs_pr_cont_buf, path, sizeof(kernfs_pr_cont_buf));
> +       len = strscpy(kernfs_pr_cont_buf, path, sizeof(kernfs_pr_cont_buf));

How did you test this change is correct and does not cause any problems?

How was this issue found?

thanks,

greg k-h
  
Greg KH Nov. 15, 2022, 10:32 a.m. UTC | #2
On Tue, Nov 15, 2022 at 08:47:45AM +0800, guo.ziliang@zte.com.cn wrote:
> From: guo ziliang <guo.ziliang@zte.com.cn>
> 
> The implementation of strscpy() is more robust and safer.  That's now the
> recommended way to copy NUL terminated strings.
> 
> Signed-off-by: guo ziliang <guo.ziliang@zte.com.cn>

Note, your email is showing up as "unvalidated" with in invalid
signature based on your domain.  Please fix that up so that your patches
will be able to be accepted, otherwise we have to consider this as a
spoofed email :(

thanks,

greg k-h
  

Patch

diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
index 77d7a3a..fbb8df4 100644
--- a/fs/kernfs/dir.c
+++ b/fs/kernfs/dir.c
@@ -844,7 +844,7 @@  static struct kernfs_node *kernfs_walk_ns(struct kernfs_node *parent,

        spin_lock_irq(&kernfs_pr_cont_lock);

-       len = strlcpy(kernfs_pr_cont_buf, path, sizeof(kernfs_pr_cont_buf));
+       len = strscpy(kernfs_pr_cont_buf, path, sizeof(kernfs_pr_cont_buf));

        if (len >= sizeof(kernfs_pr_cont_buf)) {
                spin_unlock_irq(&kernfs_pr_cont_lock);