Re: [PATCH iwl-next] i40e: Use correct buffer size

From: Alexander Lobakin
Date: Wed Nov 15 2023 - 10:40:01 EST


From: Kunwu Chan <chentao@xxxxxxxxxx>
Date: Wed, 15 Nov 2023 11:14:44 +0800

> The size of "i40e_dbg_command_buf" is 256, the size of "name"
> depends on "IFNAMSIZ", plus a null character and format size,
> the total size is more than 256, fix it.
>
> Signed-off-by: Kunwu Chan <chentao@xxxxxxxxxx>
> Suggested-by: Simon Horman <horms@xxxxxxxxxx>
> ---
> drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
> index 999c9708def5..e3b939c67cfe 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
> @@ -72,7 +72,7 @@ static ssize_t i40e_dbg_command_read(struct file *filp, char __user *buffer,
> {
> struct i40e_pf *pf = filp->private_data;
> int bytes_not_copied;
> - int buf_size = 256;
> + int buf_size = IFNAMSIZ + sizeof(i40e_dbg_command_buf) + 4;

Reverse Christmas Tree style? Should be the first one in the declaration
list.

> char *buf;
> int len;

You can fix it in a different way. Given that there's a kzalloc() either
way, why not allocate the precise required amount of bytes by using
kasprintf() instead of kzalloc() + snprintf()? You wouldn't need to
calculate any buffer sizes etc. this way.

Thanks,
Olek