| From 3bb9b388bfc11572aca60c2ee7bd8234e2372f62 Mon Sep 17 00:00:00 2001 |
| From: Eran Ben Elisha <eranbe@mellanox.com> |
| Date: Sun, 17 Nov 2019 10:18:59 +0200 |
| Subject: [PATCH] net/mlxfw: Verify FSM error code translation doesn't exceed |
| array size |
| |
| commit 30e9e0550bf693c94bc15827781fe42dd60be634 upstream. |
| |
| Array mlxfw_fsm_state_err_str contains value to string translation, when |
| values are provided by mlxfw_dev. If value is larger than |
| MLXFW_FSM_STATE_ERR_MAX, return "unknown error" as expected instead of |
| reading an address than exceed array size. |
| |
| Fixes: 410ed13cae39 ("Add the mlxfw module for Mellanox firmware flash process") |
| Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com> |
| Acked-by: Jiri Pirko <jiri@mellanox.com> |
| Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c b/drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c |
| index 240c027e5f07..f35a053f203a 100644 |
| --- a/drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c |
| +++ b/drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c |
| @@ -55,6 +55,8 @@ static int mlxfw_fsm_state_wait(struct mlxfw_dev *mlxfw_dev, u32 fwhandle, |
| return err; |
| |
| if (fsm_state_err != MLXFW_FSM_STATE_ERR_OK) { |
| + fsm_state_err = min_t(enum mlxfw_fsm_state_err, |
| + fsm_state_err, MLXFW_FSM_STATE_ERR_MAX); |
| pr_err("Firmware flash failed: %s\n", |
| mlxfw_fsm_state_err_str[fsm_state_err]); |
| return -EINVAL; |
| -- |
| 2.7.4 |
| |