[linux-next] net/liquidio: use strscpy() to instead of strncpy()

Message ID 202212081955061873542@zte.com.cn
State New
Headers
Series [linux-next] net/liquidio: use strscpy() to instead of strncpy() |

Commit Message

Yang Yang Dec. 8, 2022, 11:55 a.m. UTC
  From: Xu Panda <xu.panda@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: Xu Panda <xu.panda@zte.com.cn>
Signed-off-by: Yang Yang <yang.yang29@zte.com>
---
 drivers/net/ethernet/cavium/liquidio/octeon_console.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
  

Comments

Simon Horman Dec. 8, 2022, 4:07 p.m. UTC | #1
On Thu, Dec 08, 2022 at 07:55:06PM +0800, yang.yang29@zte.com.cn wrote:
> From: Xu Panda <xu.panda@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: Xu Panda <xu.panda@zte.com.cn>
> Signed-off-by: Yang Yang <yang.yang29@zte.com>

This change looks good to me, but I think the subject should be:

[PATCH net-next] liquidio: use strscpy() to instead of strncpy()

Also, in the same file, does this need attention?

        /* Save off any leftovers */
        if (line != &console_buffer[bytes_read]) {
                console_buffer[bytes_read] = '\0';
                len = strlen(console->leftover);
                strncpy(&console->leftover[len], line,
                        sizeof(console->leftover) - len);
        }

> ---
>  drivers/net/ethernet/cavium/liquidio/octeon_console.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_console.c b/drivers/net/ethernet/cavium/liquidio/octeon_console.c
> index 28feabec8fbb..076e11f7cbec 100644
> --- a/drivers/net/ethernet/cavium/liquidio/octeon_console.c
> +++ b/drivers/net/ethernet/cavium/liquidio/octeon_console.c
> @@ -247,8 +247,7 @@ static const struct cvmx_bootmem_named_block_desc
>  					struct cvmx_bootmem_named_block_desc,
>  					size));
> 
> -		strncpy(desc->name, name, sizeof(desc->name));
> -		desc->name[sizeof(desc->name) - 1] = 0;
> +		strscpy(desc->name, name, sizeof(desc->name));
>  		return &oct->bootmem_named_block_desc;
>  	} else {
>  		return NULL;
> -- 
> 2.15.2
>
  

Patch

diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_console.c b/drivers/net/ethernet/cavium/liquidio/octeon_console.c
index 28feabec8fbb..076e11f7cbec 100644
--- a/drivers/net/ethernet/cavium/liquidio/octeon_console.c
+++ b/drivers/net/ethernet/cavium/liquidio/octeon_console.c
@@ -247,8 +247,7 @@  static const struct cvmx_bootmem_named_block_desc
 					struct cvmx_bootmem_named_block_desc,
 					size));

-		strncpy(desc->name, name, sizeof(desc->name));
-		desc->name[sizeof(desc->name) - 1] = 0;
+		strscpy(desc->name, name, sizeof(desc->name));
 		return &oct->bootmem_named_block_desc;
 	} else {
 		return NULL;