| From: Alex Vesker <valex@mellanox.com> |
| Date: Fri, 25 May 2018 20:25:59 +0300 |
| Subject: net/mlx5: Fix incorrect raw command length parsing |
| |
| commit 603b7bcff824740500ddfa001d7a7168b0b38542 upstream. |
| |
| The NULL character was not set correctly for the string containing |
| the command length, this caused failures reading the output of the |
| command due to a random length. The fix is to initialize the output |
| length string. |
| |
| Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters") |
| Signed-off-by: Alex Vesker <valex@mellanox.com> |
| Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 4 +--- |
| 1 file changed, 1 insertion(+), 3 deletions(-) |
| |
| --- a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c |
| +++ b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c |
| @@ -1028,7 +1028,7 @@ static ssize_t outlen_write(struct file |
| { |
| struct mlx5_core_dev *dev = filp->private_data; |
| struct mlx5_cmd_debug *dbg = &dev->cmd.dbg; |
| - char outlen_str[8]; |
| + char outlen_str[8] = {0}; |
| int outlen; |
| void *ptr; |
| int err; |
| @@ -1043,8 +1043,6 @@ static ssize_t outlen_write(struct file |
| if (copy_from_user(outlen_str, buf, count)) |
| return -EFAULT; |
| |
| - outlen_str[7] = 0; |
| - |
| err = sscanf(outlen_str, "%d", &outlen); |
| if (err < 0) |
| return err; |